一、管道设置为非阻塞 管道默认读写两端都是堵塞属性,那么怎能才能设置成非阻塞呢? (1)设置读端非阻塞 获得原来的属性 flag: int flags = fcntl(fd[0], F_GETFL); 设置新的属性 flag: flags = flags | O_NONBLOCK; fcntl(fd[0], F_SETFL, flags); (2)设置写端非阻塞:将上述代码 fd[0] 改为 fd[1]即可。 二、管道的读写行为 如图所示: