- 改变已打开文件性质: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)