将子进程的stderr重定向到调用者的缓冲区

时间:2015-03-24 08:06:11

标签: c windows redirect process stderr

[Windows7] [x64] [C99] [MinGW-GCC] [+ GTK] [-DISK FILE I / O]


如何从子进程中捕获stderr并将其记录在字符串缓冲区中,能够从调用者打印出来?

1 个答案:

答案 0 :(得分:2)

您无法直接在C中执行此操作。创建pipe,使用dup2将子项stderr(文件2)重定向到管道。读取父进程中的管道并根据需要打印或存储在内存中。

请记住,如果管道已满,子进程可能会在写入stderr文件时阻塞。父进程必须从管道中读取以保持子进程运行。