1. 打开写端,读端未打开,写端会阻塞
2.打开读端,写端未打开,读端会阻塞
3.写端存在,管道中有数据,读端可以读出数据,管道没有数据,读端会阻塞等待写端写入数据
4.写端关闭,管道中有数据,读端可以读出数据,管道没有数据,读端会立即返回,返回值为0
5.读端存在,写端在管道没有填满之前可以一直写入数据
6.读端不存在,向管道中写入数据的进程将收到内核传来的SIGPIPE信号(通常是Broken pipe错误),这个信号的系统默认操作是杀死进程,因为只有管道的读端存在时,向管道中写入数据才有意义。
其中第6条在我们编写类似程序时要特别注意。