版權所有 © 2014 tutorialspoint
close - 關閉檔案描述符
#include <unistd.h> int close(int fd);
int close(int fd);
close() 關閉檔案描述符,使其不再引用任何檔案,並且可以重複使用。它與關聯的檔案相關的任何記錄鎖(參見 fcntl(2))以及由程序擁有的記錄鎖都被移除(無論用於獲取鎖的檔案描述符是什麼)。
如果 fd 是特定檔案描述符的最後一個副本,則與其關聯的資源將被釋放;如果描述符是對使用 unlink(2) 刪除的檔案的最後一個引用,則該檔案將被刪除。
close() 成功時返回零。發生錯誤時,返回 -1,並且 errno 被相應地設定。
SVr4、4.3BSD、POSIX.1-2001。
不檢查 close() 的返回值是一個常見但仍然很嚴重的程式設計錯誤。先前的 write(2) 操作上的錯誤很有可能在最終的 close() 中報告。在關閉檔案時不檢查返回值可能會導致資料靜默丟失。這尤其在 NFS 和磁碟配額中觀察到。
成功的關閉並不保證資料已成功儲存到磁碟,因為核心會延遲寫入。檔案系統在流關閉時重新整理緩衝區並不常見。如果您需要確保資料已物理儲存,請使用 fsync(2)。(此時將取決於磁碟硬體。)
fcntl (2)
fsync (2)
open (2)
shutdown (2)
unlink (2)
廣告