管道的读写特点

使用管道时,需要注意以下几种特殊的情况(假设都是阻塞I/O操作)

总结

管道设置为非阻塞——fcntl

// 获取原来的flag
int flags = fcntl(pipefd[0], F_GETFL);

// 修改flag的值
flags |= O_NONBLOCK;

// 设置新的flag
fcntl(pipefd[0], F_SETFL, flags);