首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >输出文件重定向(几乎)从未在linux中使用我的c++程序。

输出文件重定向(几乎)从未在linux中使用我的c++程序。
EN

Stack Overflow用户
提问于 2014-11-25 14:02:13
回答 1查看 351关注 0票数 1

如果我输入myprogram > file,我将得到一个大小为0的文件,除非有一次它正常工作。相同的程序,在工作和不工作的时间之间没有变化。没有重定向,它打印到终端只是很好的。实际上,所有在线帮助都假定您需要重定向std错误,但这里不是这样的。

该程序是多线程的,读取USB端口并将其写入蓝牙端口。没有键盘输入,也没有出口,它只是运行。我用ctrl-c来阻止它。这是在无头linux英特尔爱迪生上嵌入的代码。

我想我需要在代码中做一些事情来允许重定向。这可能是一件简单的事情,我应该知道,但我不知道。我会感谢一些帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-25 14:10:20

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

由于您杀死了您的脚本而不是优雅地退出,所以在它写入缓冲区之前停止该进程。

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

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27137569

复制
相关文章

相似问题

添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文