fcntl F_SETFL

时间:2023-03-08 17:02:36

F_SETFL file set flag

F_SETFL命令允许更改的标志有O_APPEND,O_NONBLOCK,O_NOATIME,O_DIRECT,O_ASYNC

这个操作修改文件状态标记适用于以下场景:

文件描述符不是通过open()系统调用获得的。比如pipe()返回两个文件描述符代表管道的两端。socket()指向套接字。

int flag = fcntl(fd,F_GETFL);

flag |= O_APPEND;

fcntl(fd,F_SETFL,flag);//注意F_SETFL的时候是用3的参数的版本