2

我一直在使用dupfreopen重新路由stdout到如下文件:

fflush(stdout);
fgetpos(stdout, &pos);
fd = dup(fileno(stdout));
freopen("stdout.out", "w", stdout);

我想做的是将它重新路由到 a char[],以便我可以操纵它。显然,这在使用 编写时不是很有用printf,但是在使用写入到 的库时,stdout在代码中获取输出会很有帮助,这样我就可以在必要时对其进行操作。

4

1 回答 1

0

不能保证分配给 stdout 工作,但它可能会在您的平台上工作,否则请参阅基于 shmem_open、mmap 和 fmem_open 的答案:https ://stackoverflow.com/a/25327235/2332068

于 2021-11-03T10:15:45.050 回答