首页 > 系统相关 >shell关闭buffer执行命令

shell关闭buffer执行命令

时间:2023-03-24 22:38:54浏览次数:42  
标签:usleep main 执行命令 shell cout 输出 buffer include

前言

当执行一些二进制文件时,发现有日志丢失的情况,后来知道是输出到buffer中,换行会将buffer中的内容输出到控制台,而如果没有换行那么会输出到buffer中。

一个例子

#include<iostream>
#include<string>
#include <unistd.h>
using namespace std;

int main(){
        while (true){
        usleep(30000);
        cout << "a" ;
		}
        return 0;
}

编译执行:

g++ main.cpp
./a.out

发现没有输出

而如果加入换行符:

#include<iostream>
#include<string>
#include <unistd.h>
using namespace std;

int main(){
        while (true){
        usleep(30000);
        cout << "a" << endl;
		}
        return 0;
}

则会有输出

解决方案

stdbuf -i0 -o0 -e0 ./a.out

stdbuf 可以关闭buffer
-i 指的是标准输入
-o 指的是标准输出
-e 指的是标准错误输出

作者:Hello_wshuo,


标签:usleep,main,执行命令,shell,cout,输出,buffer,include
From: https://blog.51cto.com/u_13589616/6148283

相关文章

  • 详解shell语法检查模式
    启用verbose调试模式在进入本指导的重点之前,让我们简要地探索下 verbose模式。它可以用-v调试选项来启用,它会告诉 shell 在读取时显示每行。要展示这个如何工作,下......
  • ArrayBuffer、Float32Array、Uint8Array 详解
    ArrayBufferArrayBuffer()是一个普通的JavaScript构造函数,可用于在内存中分配特定数量的字节空间。constbuf=newArrayBuffer(16);//在内存中分配16字节alert(buf.......
  • Shell: /dev/null 2>&1详解
    1,可以将/dev/null看作"黑洞".它非常等价于一个只写文件.所有写入它的内容都会永远丢失.而尝试从它那儿读取内容则什么也读不到.然而,/dev/null对命令行和脚本都非常的......
  • Shell 编程:Bash空格的那点事
     空格,一个看不见的字符,很不起眼,也正由于不起眼,很多人经常忽略它,导致代码出错,却还找不着北。这里,我们来聊聊bash中空格的那点事。先了解下bash中什么时候该用空格,什么时......
  • Linux shell set command All In One
    LinuxshellsetcommandAllInOneerros❌unbound-variable#$1:unboundvariableif(($1))thenecho$1#arg=$1#tsGenerator$arg#tsGenerator......
  • Classic Shell 后继者之 Classic Start
    ClassicShell的开发者去年年底在官网发布声明表示,因缺乏足够的业余时间、Windows10更新过于频繁、微软对操作系统的改革等原因,该工具停止更新。开发者将工具在SourceFo......
  • shell sed命令
    命令介绍sed主要是用来将数据进行选取、替换、删除、新増的命令。我们看看命令的语法选项:-n:一般sed命令会把所有数据都输出到屏幕上。如果加入此选项,则只会把经过s......
  • 设置Mysql sort_buffer_size参数
    按照官网的解释:Eachsessionthatmustperformasortallocatesabufferofthissize.sort_buffer_sizeisnotspecifictoanystorageengineandappliesinag......
  • linux shell基础--$字符
    shell中有两类字符:普通字符、元字符。普通字符在Shell中除了本身的字面意思外没有其他特殊意义,即普通纯文本;元字符是Shell的保留字符,在Shell中有着特殊的含义。$()反引号......
  • Shell---控制流程
    操作系统:RHEL7.x或CentOS7.x最小化安装配置好固定的IP,能访问互联网配置好yum源(yumrepolist可以查看yum源)本地光盘挂载光盘,开机自动挂载vim+/etc/fstab......