- 改變已打開文件性質:fcntl()
? ? ? #include<fcntl.h>
? ? ? int fcntl(int fd, int cmd, …);
?? ? (1)? 調用失敗返回-1
?? (2)fcntl函數有5種功能:
? ? ? ? ? a. 復制一個現有的描述符(cmd=F_DUPFD)
? ? ? ? ? b. 獲得/設置文件描述符標志(cmd=F_GETFD 或? F_SETFD) F_GETFD取得close-on-exec旗標。若此旗標的FD_CLOEXEC位為0,代表在調用exec()相關函數時文件將不會關閉。F_SETFD 設置close-on-exec 旗標。該旗標以參數arg 的FD_CLOEXEC位決定。
? ? ? ? ? c. 獲得/設置文件訪問模式(cmd=F_GETFL 或 F_SETFL),詳情參見open()函數
? ? ? ? ? d. 獲得/設置異步I/O所有權(cmd=F_GETOWN 或 F_SETOWN)
? ? ? ? ? e. 獲得/設置記錄鎖(cmd=F_GETLK? 或 F_SETLK 或 F_SETLKW)