#include #include int main () { int fd[2];int ret=pipe(fd);//在内核中创建了一个管道 if(ret<0) { perror("pipe"); }
int flag=fcntl(fd[0], F_GETFL) //查看读端属性,打印出的数值为0,这个0是属性不是保存的值 fcntl(fd[0], F_SETFL, flag | O_NONBLOCK) //设置新属性时,要保留原属性 int flag=fcntl(fd[0], F_GETFL) //再次查看f[0]的属性,数值变成2048 }
#include #include #include int main () { //创建管道 int fd[2]; int ret=pipe(fd); //设置读文件描述符为非阻塞属性 if(ret<0) { perror("fork"); } int flag=fcntl(fd[0], F_GETFL); fcntl(fd[0], F_SETFL, flag|O_NONBLOCK);
#include #include #include int main () { int fd[2]; int ret=pipe(fd); //设置读文件描述符为非阻塞属性 if(ret<0) perror("fork"); int flag=fcntl(fd[1], F_GETFL); fcntl(fd[1], F_SETFL, flag|O_NONBLOCK);