我有stderr
声明,其中有一个句子。
我想获取该内容并使用printf()
将其推送到标准输出。
fprintf(stderr, "Hello world!");
现在,我希望获得 Hello World!并使用printf()
将其打印到标准输出。
可行吗?
答案 0 :(得分:1)
默认情况下,stderr没有任何缓冲区。因此,我们需要为stderr设置缓冲区。
在stderr上执行任何操作之前,您必须更改stderr的缓冲区。
要为stderr设置缓冲区,可以使用setbuf()为stderr设置缓冲区。
示例: -
#include <stdio.h>
int main(void)
{
char buf[BUFSIZ];
setbuf(stderr, buf);
fprintf(stderr, "Hello, world!\n");
printf("%s", buf);
return 0;
}
输出: -
Hello, world!
Hello, world!
在这个例子中,变量buf包含你在stderr中编写的内容,它存储在buf字符数组中。使用该字符数组,您可以在stdout中打印它。