close() - Unix,Linux 系統呼叫 - 技術教學
Tutorials Point


  Unix 初學者指南
  Unix Shell 程式設計
  高階 Unix
  Unix 有用參考
  Unix 有用資源
  精選閱讀

版權所有 © 2014 tutorialspoint



  首頁     參考     討論論壇     關於 TP  

close() - Unix,Linux 系統呼叫


previous next AddThis Social Bookmark Button

廣告

名稱

close - 關閉檔案描述符

語法

#include <unistd.h> 

int close(int fd);

描述

close() 關閉檔案描述符,使其不再引用任何檔案,並且可以重複使用。它與關聯的檔案相關的任何記錄鎖(參見 fcntl(2))以及由程序擁有的記錄鎖都被移除(無論用於獲取鎖的檔案描述符是什麼)。

如果 fd 是特定檔案描述符的最後一個副本,則與其關聯的資源將被釋放;如果描述符是對使用 unlink(2) 刪除的檔案的最後一個引用,則該檔案將被刪除。

返回值

close() 成功時返回零。發生錯誤時,返回 -1,並且 errno 被相應地設定。

錯誤

標籤描述
EBADF fd 不是有效的開啟檔案描述符。
EINTR close() 呼叫被訊號中斷。
EIO 發生 I/O 錯誤。

符合標準

SVr4、4.3BSD、POSIX.1-2001。

備註

不檢查 close() 的返回值是一個常見但仍然很嚴重的程式設計錯誤。先前的 write(2) 操作上的錯誤很有可能在最終的 close() 中報告。在關閉檔案時不檢查返回值可能會導致資料靜默丟失。這尤其在 NFS 和磁碟配額中觀察到。

成功的關閉並不保證資料已成功儲存到磁碟,因為核心會延遲寫入。檔案系統在流關閉時重新整理緩衝區並不常見。如果您需要確保資料已物理儲存,請使用 fsync(2)。(此時將取決於磁碟硬體。)

參見



previous next Printer Friendly

廣告


  

廣告



廣告
© . All rights reserved.