gpt4 book ai didi

c - 将 C 程序设置为行缓冲区将不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 02:16:46 27 4
gpt4 key购买 nike

我试图强制我的 C 程序行缓冲区(stdout 将被 java 程序捕获),但它似乎总是完全缓冲。这是一些示例代码:

#include <stdio.h>
#include <stdlib.h>

int main(){
char c;
setvbuf(stdout, NULL, _IOLBF, BUFSIZ);
printf("Hello world\n");
c = getchar();
printf("got char: %c\n", c);
}

如果我指定 _IOLBF 或 _IOFBF,那么在我输入一个字符之前我看不到输出。只有当我使用 _IONBF 时,我才会在 getchar() 之前看到输出。 _IOLBF 不应该做同样的事情吗,因为“Hello World\n”包含一个“\n”?

我正在使用 Visual C++ 2005。

谢谢

最佳答案

根据 this Microsoft documentation :

_IOLBF: For some systems, this provides line buffering. However, for Win32, the behavior is the same as _IOFBF - Full Buffering.

关于c - 将 C 程序设置为行缓冲区将不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6653603/

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