linux的管道是什么?
--pipe是一种跨进程通信的方式。分为匿名管道和命名管道。分别可以由“|”操作符和“mknod”,"mkpipe"命令来实现。其本质是一处连续的内存空间。因为linux的特性,被映射成为一个文件。匿名管道依赖于两个进程间的亲缘关系,也就是说,子进程需要通过fork操作还获取父进程创建的pipe的文件操作符(fd)。命名管道则跳出了这一限制,可以动态地为两个毫无关联的进程提供读写操作。管道的空间(PIPE_SIZE)有限,如果需要写的数据超过了空间大小,那么写操作会被阻塞。如果管道没有数据,那么读操作会被阻塞。向管道写入数据时,每次操作的数据长度(PIPE_BUF)决定了写入操作一次write()最多可以写入的数据容量(一个page,通常是4000byte)。如果数据大于PIPE_BUF,那么写入就不是原子操作。推荐用法是用它进行单工通信。
Linux 的进程间通信:管道