Re: Linux 上面讀取檔案發生超奇怪問題
沒有遇到過這樣的問題,說說我的一點看法吧。
在設置nfs server的時候,你可以設置sync或是async,怎么設置可以參考其他
文章,網路上很多。
如果設置為sync,則所有client寫入檔案的內容都不會cache,而是直接寫入disk。
如果設置為async,則所有client寫入檔案的內容都會cache。不管client端的process
在打開檔案的時候設置O_SYNC flag,還是呼叫fsync()。
所以我覺得你的問題有如下兩種解決方法。
1,在你的nfs server端設置sync。
2,在master打開文件之后,在read之前,呼叫fsync()來sync文件。
以上方式并沒有驗證過,僅供參考。
※ 引述《yoco315 (眠月)》之銘言:
: 感謝 richardhesid 給了我很多提示,
: 我現在知道是 nfs 會 cache 的關係了。
: 不然之前真的是想破頭想不到原因。
: 今天上網查了很久相關資訊,有點概念了,
: 那我現在問題就得改變了,請問:
: 1. 請問我有沒有辦法透過某個函數呼叫,讓檔案 sync?
: 2. 或是,我有沒有什麼方法檢查某檔案是否 sync 了?
: 因為這個程式不是只有自己用 orz
: 我也不知道用的人那邊 nfs 是怎麼設定的,
: 也沒辦法控制要別人怎麼設定…
: 但是如果我可以檢查檔案的狀態,
: 那我至少可以 polling 到那個檔案 standby 為止…
: 我 Linux 還真是一竅不通阿 orz
: 先謝謝 <(_ _)>
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.191.37.122
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章