0 c buffer file-descriptor stream
这是我在 Stackoverflow 上迈出的第一步!
所以,我试图使用setbuf()重定向stdout到char buffer[BUFSIZ]. 当我使用时它工作得很好printf(),但当我使用系统调用时它根本不起作用write()。
这是代码示例:
#include <stdio.h>
#include <unistd.h>
int main(void)
{
char buffer[BUFSIZ];
freopen("/dev/null", "a", stdout);
setbuf(stdout, buffer);
printf("This works\n");
write(stdout->_file, "This doesn't.\n", 14);
fflush(stdout);
freopen("/dev/tty", "a", stdout);
printf("Buffer content :\n%s", buffer);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出是
缓冲区内容:
这有效
你知道为什么吗?因为现在我不知道这是如何工作的,我将通过管道将标准输出传输到标准输入,然后读取结果 - 我认为这不是最干净的方法。
谢谢你,祝你有美好的一天 !
| 归档时间: |
|
| 查看次数: |
636 次 |
| 最近记录: |