gpt4 book ai didi

c - Linux:printf 到完整的标准输出

转载 作者:行者123 更新时间:2023-11-30 21:12:48 26 4
gpt4 key购买 nike

如果我使用 printf 将字符串输出到已满的缓冲区 stdout 会怎样?

printf 会在 write() 函数中永远等待吗?

顺便问一下,stdout是系统共享还是每个进程共享?

有人可以帮助我吗?

最佳答案

这取决于它要写入的内容,以及它是否使用阻塞 I/O 与非阻塞 I/O。通常它默认是阻塞的。但请记住,printf 会缓冲其输出,因此在刷新 stdout 之前您可能不知道是否存在问题。如果您确实想知道是否存在问题,您应该检查 fclose 的返回值。

另一种可能性是缓冲区根本没有被刷新。通常 stdout 是行缓冲的,这意味着当写入换行符时它会被刷新。您可以通过调用 fflush(stdout); 来强制刷新,看看这是否会产生影响。我还建议确保您的输出以换行符结尾。

关于c - Linux:printf 到完整的标准输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37201060/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com