Посмотрел man 2 open и только щас заметил что там вроде как две функции open с разным кол-вом аргументов.
1) Смотрю исходник, а там вообще нет "..." при том что va_list используется. Разве так можно?
int __open (const char *file, int oflag) {
[...]
if (oflag & O_CREAT)
{
va_list arg;
va_start(arg, oflag);
mode = va_arg(arg, int);
va_end(arg);
}
[...]
}
2) Как одна функция(враппер) с переменным кол-вом аргументов может вызвать другую функцию со всеми своими параметрами? Или это в принципе не возможно и нужна версия функции которая принимает va_list(типа printf и vprintf)?