Fw: [問題] flock裡open() 檔案的相關問題

看板LinuxDev作者 (殺拉頂)時間5年前 (2019/05/23 03:07), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
※ [本文轉錄自 Linux 看板 #1SvPnx1Q ] 作者: saladim (殺拉頂) 看板: Linux 標題: [問題] flock裡open() 檔案的相關問題 時間: Thu May 23 03:01:12 2019 大家好, 最近剛好看到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 ※ 發信站: 批踢踢實業坊(ptt.cc) ※ 轉錄者: saladim (36.226.226.204), 05/23/2019 03:07:26
文章代碼(AID): #1SvPtlGD (LinuxDev)
文章代碼(AID): #1SvPtlGD (LinuxDev)