[問題] 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