c - 管道、Fifo、read() 和 write() 函数

标签 c linux kernel

我刚刚学习管道、fifo,我有一个问题。

如果一个程序打开管道进行读取,而另一个程序打开管道进行写入,会发生什么情况。这两个程序并行运行。假设第一个程序尝试读取表单管道,但没有任何信息,因此它一直处于阻塞状态,直到第二个程序写入内容。

在第二步中,第一个程序更快,并尝试再次从管道读取。这次有一些上次的情报。该程序有什么作用?它是否读取了上次的信息?

谢谢!

最佳答案

如果我正确理解您的问题,答案是否定的。第一次读取所读取的任何信息都会被消耗掉,并且在管道中不再可用。如果没有进一步写入管道,第二次读取将阻塞。

关于c - 管道、Fifo、read() 和 write() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25673800/

相关文章:

c - 宏中的预增量 (C)

c - netlink_kernel_create 不适用于最新的 Linux 内核

c++ - 插入C结构函数指针

C结构问题

c - 将输出流式传输到 stdout,就地状态更新到 stderr

python - 将已安装的软件包复制到新的 Linux 发行版

linux - 从 txt 文件创建 Samba 用户的脚本

c++ - 用户空间中的 Linux C/C++ 计时器信号处理程序

c - 为什么向串口发送字符需要延时?

java - 由于 system.currentTimeMillis() 导致系统 CPU 使用率高