在argp

时间:2016-06-06 17:50:53

标签: c glibc

默认情况下argp使用标准输出。

在argp-parse.c源代码中,您可以看到在init函数中将值初始化为stdout:

parser->state.out_stream = stdout;

struct argp_state在内部使用argp并存储值out_stream

我想更改默认行为并将流重定向到另一个文件描述符。

1 个答案:

答案 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);