9
在Linux 2.6內核和NFSv3中,open("fname", O_CREAT|O_EXCL)
有效嗎?目前規範open(2)
系統調用文檔(http://www.kernel.org/doc/man-pages/online/pages/man2/open.2.html)說,一切都很好:open O_CREAT |在Linux上NFS的O_EXCL?
- O_EXCL
- ...
On NFS, O_EXCL is only supported when using NFSv3 or later on kernel
2.6 or later. In NFS environments where O_EXCL support is not
provided, programs that rely on it for performing locking tasks will
contain a race condition. Portable programs that want to perform
atomic file locking using a lockfile, and need to avoid reliance on NFS
support for O_EXCL, can ...
這讀取,就好像所有的2.6內核都OK,但該男子頁changelog(CA後期內核2.6.23)開始顯示效力四年 2.6.0上線後,在過去的一兩年裏,網絡用戶詬病這種使用情況十分盛行。我想在RHEL 5(2.6.18)系統上使用這個設置,但是當它真正變得安全時我無法確定。有沒有人有明確的答案?
有沒有在某處有一個編程問題? – Gabe 2010-08-04 14:57:21
我在第一句話中儘可能多地表達意思。由於人們可以在C++標準庫中提出有關'std :: fstream :: fstream(char const *,ios_base :: openmode)'的問題,我希望C標準庫是開放的遊戲,即使對於非POSIX選項。 – Jeff 2010-08-04 15:37:54
如果這是最初的擔憂,則附帶的文字已大幅減少以幫助清晰。 – Jeff 2010-08-04 16:42:07