fcntl F_SETFL
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的参数的版本