作者richardhesid (张骞)
看板C_and_CPP
标题Re: Linux 上面读取档案发生超奇怪问题
时间Tue Apr 14 12:55:08 2009
没有遇到过这样的问题,说说我的一点看法吧。
在设置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