[問題] flock裡open() 檔案的相關問題已刪文
大家好, 最近剛好看到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的了?
請問各位先進幫忙解惑 是不是有哪些概念我不知道所以沒法看懂這邊的碼呢?
謝謝~~~
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.226.226.204
※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1558551675.A.05A.html
※ saladim:轉錄至看板 LinuxDev 05/23 03:07
→
05/23 20:21,
5年前
, 1F
05/23 20:21, 1F