gpt4 book ai didi

c - 尽管禁用了缓冲,但 Printf 没有立即打印

转载 作者:可可西里 更新时间:2023-11-01 11:45:06 26 4
gpt4 key购买 nike

我在使用 C 中的 printf 函数时遇到问题。它只是不打印输出,尽管禁用了缓冲:

setbuf(stdout, NULL);  

setvbuf(stdout, NULL, _IONBF, 0);

我也在用fflush(stdout);,但还是不行。
这是确切的代码:

int setup(){
//...
printf("Setup successful\n");
fflush(stdout);
return 0;
}
int main(int argc, char *argv[]){
setbuf(stdout, NULL);
setvbuf(stdout, NULL, _IONBF, 0);
setup();
//...
)

如果信息有帮助;我在 Linux(树莓派)上。
提前致谢!

最佳答案

我已尝试尽可能接近地重现您的设置。因此,我在 VirtualBox 镜像中安装了 Raspbian(树莓派操作系统),并使用 Geany 创建、编译和执行 C 文件。这是完整的代码:

#include <stdio.h>

int main() {
printf("Setup successful\n");
}
  1. 将此文件另存为 test.c:

    test.c saved

  2. 接下来,点击“构建”(砖 block 图标):

    build test.c

  3. 最后,运行它(单击纸飞机图标):

    enter image description here

如您所见,此代码正确编译、执行并打印了消息。不需要显式刷新 ( printf to stdout automatically flushes when encountering a newline character )。此行为已标准化并由 Raspbian 安装的工具正确实现,因此非常可靠。

关于c - 尽管禁用了缓冲,但 Printf 没有立即打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50350334/

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