【发布时间】:2011-10-30 02:55:46
【问题描述】:
我有一个关于 I/O 标准库中的缓冲的问题: 我阅读了关于文件 I/O 缓冲的“Linux 编程接口”第 13 章,作者提到标准库对磁盘文件和终端使用 I/O 缓冲。 我的问题是,这种 I/O 缓冲是否也适用于 FIFO、管道、套接字和网络文件?
【问题讨论】:
我有一个关于 I/O 标准库中的缓冲的问题: 我阅读了关于文件 I/O 缓冲的“Linux 编程接口”第 13 章,作者提到标准库对磁盘文件和终端使用 I/O 缓冲。 我的问题是,这种 I/O 缓冲是否也适用于 FIFO、管道、套接字和网络文件?
【问题讨论】:
是的,如果您使用的是基于 FILE * 的标准 I/O 库。可能发生的唯一奇怪的事情是,如果底层系统文件描述符为isatty 函数返回非零值。然后 stdio 可能会“行缓冲”输入和输出。这意味着当它看到'\n' 时,它往往会刷新。
我相信如果文件描述符 1 为 isatty 返回非零值,则需要对 stdout 进行行缓冲。
【讨论】:
【讨论】: