[問題] flock裡open() 檔案的相關問題已刪文

看板Linux作者 (殺拉頂)時間5年前 (2019/05/23 03:01), 編輯推噓0(001)
留言1則, 1人參與, 5年前最新討論串1/1
大家好, 最近剛好看到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.htmlsaladim:轉錄至看板 LinuxDev 05/23 03:07

05/23 20:21, 5年前 , 1F
已經找到原因了 眼殘 @_@ 之後自刪 XD
05/23 20:21, 1F
文章代碼(AID): #1SvPnx1Q (Linux)