[问题] flock里open() 档案的相关问题

楼主: saladim (杀拉顶)   2019-05-23 03:01:12
大家好, 最近刚好看到linux上面有 flock这个指令, 可以作到同台机器上的
同步应用, 看起来基本原理是利用建立一个(锁定)档来达成
有点好奇实作怎么作的 找了下面的原始码:
https://github.com/karelzak/util-linux/blob/master/sys-utils/flock.c
看不太懂 然后就有了以下的问题:
Line 90 那边是开档的function,里面给open的flag好像只有 O_RDONLY | O_CREAT
这样的flag有保证检查档案存在性跟创建新档是atomic的吗?
google一下只找到 使用 O_EXCL | O_CREAT 时, 若档案已存在则回传错误 而且保证
检查跟创建档案是atomic的, 可是这边开档的flag不一样
还是说现在linux open(...) 已经保证检查跟创建新档是atomic的了?
请问各位先进帮忙解惑 是不是有哪些概念我不知道所以没法看懂这边的码呢?
谢谢~~~
楼主: saladim (杀拉顶)   2019-05-23 20:21:00
已经找到原因了 眼残 @[email protected] 之后自删 XD

Links booklink

Contact Us: admin [ a t ] ucptt.com