哪些缓冲区要刷新?

时间:2018-11-14 12:56:48

标签: c

我正在用C创建一个客户端/服务器应用程序,在其中我重复使用一些现有代码。因此,服务器而不是客户端负责向用户打印消息。为此,服务器通过在'/ proc // fd / 1'上调用fopen()来打开客户端的stdout,并将其自己的stdout重定向到该fd。

我想知道服务器打印消息以了解要刷新的内容时涉及哪些缓冲区? 服务器显然必须刷新其自己的stdout,但这是否足以使消息出现,或者输出仅会结束于客户端stdout的缓冲区? 客户端是否还必须刷新其标准输出,以确保该消息对用户可见? 对服务器和客户端的stdout调用fsync()会有所不同吗?

我想完全了解涉及哪些缓冲区的原因是,当客户端的标准输出重定向到文件时,我已经看到了问题。我已经了解了行缓冲输出和完全缓冲输出的区别,所以我怀疑我遇到的问题与客户端的重定向标准输出有关。

0 个答案:

没有答案