[問題] readlock

看板C_and_CPP (C/C++)作者 (SahsB)時間10年前 (2015/12/16 16:38), 10年前編輯推噓1(1011)
留言12則, 4人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Linux 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 下面有程式碼 想檢查檔案是不是 locked 但輸出不符合預期 餵入的資料(Input): 檔名123的檔案 預期的正確結果(Expected Output): r 錯誤結果(Wrong Output): u 程式碼(Code):(請善用置底文網頁, 記得排版) http://codepad.org/jS57a2Y4 補充說明(Supplement): write lock 可以正確輸出 w 但 read lock 就是無法輸出 r 不知道是哪裡出錯@@ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.249.194 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1450255098.A.835.html

12/16 16:55, , 1F
你有兩行code一模一樣
12/16 16:55, 1F
已修正 感恩~ ※ 編輯: SahsB (140.112.249.194), 12/16/2015 16:58:11

12/16 17:05, , 2F
lock.l_type = F_RDLCK; 為啥check lock2?
12/16 17:05, 2F

12/16 17:08, , 3F
我是用lock來上set lock 用lock2來get lock
12/16 17:08, 3F

12/16 17:20, , 4F
嗯...我知道我問了個蠢問題...Orz
12/16 17:20, 4F

12/16 17:58, , 5F
會不會是你用同一個process才會有這問題?
12/16 17:58, 5F

12/16 17:59, , 6F
拆開來兩個執行檔試試看如何?
12/16 17:59, 6F

12/16 18:04, , 7F
我試過了和你狀態一樣...等高人指教了...
12/16 18:04, 7F

12/16 21:05, , 8F
請 man fcntl 看 F_GETLK 的說明. 補充: F_RDLCK 為 0.
12/16 21:05, 8F

12/16 21:16, , 9F
另外,如同樓上上所說,同行程可隨意變換,要拆成兩行程來測試.
12/16 21:16, 9F

12/17 09:58, , 10F
哈,我測試他是return 2...所以才說測出一樣的問題
12/17 09:58, 10F

12/17 09:58, , 11F
所以才想說是不是還有什麼菱角?
12/17 09:58, 11F

12/18 16:07, , 12F
同Process不能GET自己的LOCK,會蓋過去
12/18 16:07, 12F
文章代碼(AID): #1MSIBwWr (C_and_CPP)
文章代碼(AID): #1MSIBwWr (C_and_CPP)