c - 即使终止程序,也将程序回显到文件中(linux)

标签 c linux echo kill

我有一个 C 程序,它向控制台输出一些信息,然后进入无限循环。我需要在后台运行程序并将输出重定向到日志文件。如果程序没有无限循环,则重定向有效,如果程序有无限循环,则什么都不写。

例如,这个程序test.c:

#include <stdio.h>
main (void) {
printf("Hello world\n");
while(1);
}

如果我运行它,我会在控制台上看到 Hello world 行,但是如果我运行 ./test > logfile,我不会在文件中写入任何内容。

有什么方法可以做到这一点吗?

谢谢!

最佳答案

欢迎来到缓冲输入/输出的世界。

使用非缓冲系统调用(openreadwrite)或刷新流。

编辑:另外,这可能是一个文件系统问题。在文件系统上执行 sync

关于c - 即使终止程序,也将程序回显到文件中(linux),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16436007/

相关文章:

ruby - 如何在linux中自动缩进ruby代码

C - 使用按位运算符将 int 显示为十六进制

c - C编程中需要什么时候初始化变量

python - 重新加载/重新导入使用 from * import * 导入的文件/类

php - php echo 中的 css id 不起作用

php - echo 在 php actionscript 连接上不返回变量值

php - 多语言 : Adding custom language to Web content php

c - pthread_mutex_lock 返回无效参数

c - 什么时候传值?

linux - 为什么 mod_revite 在 Apache 中不起作用?