c - 写入器关闭后管道/FIFO 读取尝试

标签 c linux pipe fifo

如前所述in pipe's Linux man page ,给定一个为读取和写入而正确打开的管道/FIFO,如果写入端关闭,则“尝试从管道读取(2)将看到文件结尾(读取(2)将返回0) ”。我的问题是,假设我已经将一些数据写入管道(现在应该存储在内核缓冲区中),然后我在读取端设法读取数据之前关闭了写入端,将进行以下尝试从文件中读取仍然会自动获取 EOF,还是读取器能够先读取内核缓冲区中的数据,然后才获取 EOF?

最佳答案

在发出 EOF 信号之前,首先读取仍在管道中的数据。

关于c - 写入器关闭后管道/FIFO 读取尝试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51302737/

相关文章:

node.js - 在 Node.js 中,请求回调是一种不好的做法吗?

c++ - 从 C、C++ 在 Linux 中发出系统命令

linux - 捕获标准错误和标准输出的好方法

linux - 在 ARMv6 上运行 x86 打印机驱动程序二进制文件

linux - emacs23 到 emacs24 : imap shell "Opening nnimap server...failed: Pseudo-terminal will not be allocated ..."

c - 需要实现一个pipe,dup2函数来执行 "ls | tr a-z A-Z > file.txt"

c - 如何检查字符是否在C中的注释范围内

c - 构建 Wireshark 时的错误和警告

c - 易变的变量

c - 将 execvp 的输出放入字符串中