Я хочу использовать метод va_list дважды, в одной функции. Я могу это сделать?Можно ли использовать метод 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");
Моя цель: чтобы напечатать информацию, в списке of fd's ..
Спасибо
Вы можете передать список fd как набор какого-либо рода (массив, список, набор, ...) –
Почему тег C, когда это вопрос на C++? Обратите внимание, что использование контейнеров намного превосходит va_lists. –
Как вы это себе представляете? –