繁体   English   中英

输出文件重定向(几乎)在Linux中无法与我的C程序一起使用

[英]output file redirection (almost) never works with my c program in linux

如果键入myprogram> file,则文件大小为0,但工作一次除外。 相同的程序,在工作和不工作之间没有变化。 没有重定向,它就可以打印到终端了。 几乎所有的联机帮助都假定您需要重定向标准错误,但实际情况并非如此。

该程序是多线程的,读取USB端口并将其写到蓝牙端口。 没有键盘输入,也没有退出,它只是运行。 我用ctrl-c停止了它。 这是无头Linux Intel Edison上的嵌入式代码。

我认为我需要在代码中做一些事情以允许重定向。 我可能应该知道这很简单,但我不知道。 我将不胜感激。

当您重定向到文件时,libc将自动缓冲您的数据。

由于您杀死了脚本而不是正常退出,因此请在脚本将缓冲区写出之前停止该进程。

您可以使用fflush(stdout); 随时写出(也称为刷新)当前缓冲区。

您可以使用setvbuf(stdout, NULL, _IONBF, 0); 一起禁用stdout缓冲。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM