我想在一个函数中使用两次 va_list 方法。我可以这样做吗?
#include <cstdarg>
void printFDS(int num_fds, ... , const char *fmt, ...) {
va_list fds, args;
va_start(fds, num_fds);
va_start(args, fmt);
for (int i = 0; i < num_fds; i++) {
vsprintf(va_arg(fds, FILE*), fmt, args);
}
va_end(args);
va_end(fds);
}
所以我可以这样调用那个函数:
printFDS(1, stderr, "Error: %s\n", stderror(errno));
或者
printFDS(2, stderr, otherFD, "Error: %s\n", stderror(errno));
尽管FILE *otherFD = fopen ("somefile", "w");
我的目的:在 fd 的列表上打印信息。
谢谢