我正在尝试读取stdout而不等待进程结束。我试过this,但这对我不起作用。这是我的实际功能代码
void startShowingStdout(FILE* pipe)
{
char buffer = 0;
struct termios old_tio, new_tio;
tcgetattr(fileno(pipe),&old_tio);
new_tio=old_tio;
new_tio.c_lflag &=(~ICANON & ~ECHO);
tcsetattr(fileno(pipe),TCSANOW,&new_tio);
while((buffer = getc(pipe)) != EOF) std::cout << buffer << std::flush;
tcsetattr(fileno(pipe),TCSANOW,&old_tio);
}
在此版本中,stdout在程序结束后出现。是否有可能在退出前捕获标准输出?