可能在大家是试验中或者工作经验中, 应该是左边的命令全部处理完再一次性交给右边的命令进行处理, 不光是大家, 我在最初接触管道时, 也曾有这么一个误会, 因为我们通过现象看到的就是这样。...一个缓冲区不需要很大,它被设计成为环形的数据结构,以便管道可以被循环利用。当管道中没有信息的话,从管道中读取的进程会等待,直到另一端的进程放入信息。...这不可能, 大家可以尝试下, 我们会看到终端没反应了, 为什么呢?...: 没有缓冲区,数据会立即读入或者输出到外存文件和设备上(标准错误
因为python是默认采用带缓冲的fputs, 又因为标准输出被改写到管道, 所以将会采取全缓冲的方式(shell 命令具体要看实现,...,则read返回0
4.如果所有管道读端对应的文件描述符被关闭,则write操作会产生信号SIGPIPE
5.当要写入的数据量不大于PIPE_BUF时,linux将保证写入的原子性。