當我想使用檔案描述符更改目錄時,我應該在呼叫之后關閉目錄FD fchdir,還是fchdir自動關閉FD?
int fd = open(…);
if (fd == -1) error();
fchdir(fd);
//close(fd);
uj5u.com熱心網友回復:
恕我直言,如果代碼完成fd后不再使用,請致電close.
呼叫fchdir不會關閉檔案描述符(參見fchdir 的 posix 描述
)。
fchdir可能(取決于作業系統和檔案系統)從fd回傳給呼叫者之前獲取所需的資訊。下面是一個特定OS 檔案系統如何處理 fchdir 的系統呼叫的示例
為了更明智地決定您是否應該關閉fd調查以下描述close:
close() 函式應解除分配由 fildes 指示的檔案描述符。解除分配意味著使檔案描述符可用于通過后續呼叫 open() 或其他分配檔案描述符的函式回傳。行程在與檔案描述符關聯的檔案上擁有的所有未完成的記錄鎖都應被洗掉(即解鎖)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/529290.html
