比如寫的時候設置為阻塞,讀的時候設置為非阻塞,就需要下面的切換方式
1、獲取文件的flags,即open函數的第二個參數:
flags = fcntl(fd,F_GETFL,0);
2、設置文件的flags:
fcntl(fd,F_SETFL,flags);
3、增加文件的某個flags,比如文件是阻塞的,想設置成非阻塞:
flags = fcntl(fd,F_GETFL,0);
flags |= O_NONBLOCK;
fcntl(fd,F_SETFL,flags);
4、取消文件的某個flags,比如文件是非阻塞的,想設置成為阻塞:
flags = fcntl(fd,F_GETFL,0);
flags &= ~O_NONBLOCK;
fcntl(fd,F_SETFL,flags);
如果fcntl(fd, F_SETFL, 0); 設置為阻塞狀態
