默认情况下argp使用标准输出。
在argp-parse.c源代码中,您可以看到在init函数中将值初始化为stdout:
parser->state.out_stream = stdout;
struct argp_state在内部使用argp并存储值out_stream。
我想更改默认行为并将流重定向到另一个文件描述符。
答案 0 :(得分:1)
您可以做的是重定向stdout
并稍后恢复:
int orig_stdout = dup(STDOUT_FILENO);
extern int my_other_file_descriptor;
dup2(my_other_file_descriptor, STDOUT_FILENO);
// parse args
dup2(orig_stdout, STDOUT_FILENO);