加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

有没有办法在unix / linux上没有缓冲的情况下将输出重定向到文件

发布时间:2020-12-15 18:44:38 所属栏目:安全 来源:网络整理
导读:我有一个长时间运行的批处理过程,它将一些调试和进程信息输出到stdout. 如果我只是从一个终端运行,我可以跟踪’它在哪里’,但随后数据变得太多并滚动屏幕. 如果我重定向到输出文件’ out.txt’我最终获得了整个输出,但它被缓冲,所以我现在再也看不到它在做什
我有一个长时间运行的批处理过程,它将一些调试和进程信息输出到stdout.
如果我只是从一个终端运行,我可以跟踪’它在哪里’,但随后数据变得太多并滚动屏幕.

如果我重定向到输出文件’> out.txt’我最终获得了整个输出,但它被缓冲,所以我现在再也看不到它在做什么了.

有没有办法重定向输出,但使其不缓冲其写入?

您可以使用C中的setvbuf调用显式设置标准流的缓冲选项(请参阅 this link),但如果您尝试修改现有程序的行为,请尝试 stdbuf(显然是从版本7.5开始的coreutils的一部分).

这会将stdout缓冲到一行:

stdbuf -oL command > output

这会完全禁用stdout缓冲:

stdbuf -o0 command > output

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读