在Linux中使用管道
首先,学过Linux命令的话,大家对于管道肯定不陌生, Linux管道使用竖线 | 连接多个命令,这个被称为管道符。...,即它们会指向相同的文件:
然后我们分别关闭父进程对管道文件的读方式,以及子进程对管道文件的写方式,这时,管道文件就成为了一个由父进程写入数据,子进程读取数据的通信管道文件:...当然也可以关闭父进程对管道文件的写方式,以及子进程对管道文件的读方式,这样管道文件就成为了一个由子进程写入数据,父进程读取数据的通信管道文件。...read)是会调用阻塞,暂停进程执行,直到有数据来为止:
当读写端正常但写入时管道还是满的时
O_NONBLOCK disable: write调用阻塞,直到有进程读走数据
O_NONBLOCK...将保证写入的原子性
当要写入的数据量大于PIPE_BUF时,linux将不再保证写入的原子性
管道特点
管道的特点:
只能用于具有共同祖先的进程(具有亲缘关系的进程)之间进行通信;