我使用 setbuf 来将 stdout 重定向到 char 缓冲区,但是当我只想将新数据写入 stdout 时,它会产生一些副作用
正如下面的代码所解释的:
#define bufSize 100
int main()
{
char buf[bufSize];
setbuf(stdout, buf);
printf("123"); //123 is written to the buffer
setbuf(stdout,NULL); //123 is written to the stdout(unwanted side effect)
printf("456"); //123456 appears in the stdout
}
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
关于此的其他问题 - 这段代码适用于 unix/linux/mac os 吗?
谁能提出重定向的解决方案?