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的參數的版本