更改 argp 上的默认输出流
Change default output stream on argp
默认情况下 argp 使用标准输出。
在argp-parse.c源码中可以看到在init函数中将值初始化为stdout:
parser->state.out_stream = stdout;
结构argp_state是内部使用的argp,存储值out_stream。
我想更改默认行为并将流重定向到另一个文件描述符。
您可以做的是重定向 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);
默认情况下 argp 使用标准输出。
在argp-parse.c源码中可以看到在init函数中将值初始化为stdout:
parser->state.out_stream = stdout;
结构argp_state是内部使用的argp,存储值out_stream。
我想更改默认行为并将流重定向到另一个文件描述符。
您可以做的是重定向 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);