У меня есть открытый исходный код, который был написан мной и несколькими другими людьми. В одном из сегментов кода, написанных одним из других лиц, я вижу следующее:Слишком много аргументов для open()
open(filePath, O_RDONLY | O_CREAT, O_WRONLY | O_CREAT, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
open(filePath, O_WRONLY | O_CREAT, O_WRONLY | O_CREAT, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
Некоторые, как это компилируется в их системе, когда нам нужно выполнить. Тем не менее, в моей системе GCC жалуется, что open()
передается слишком много аргументов (что, с моей точки зрения, является точным, поскольку открытые принимают только 2 или 3 аргумента, насколько мне известно). Я также довольно смущен относительно того, почему O_RDONLY | O_CREAT
и O_WRONLY | O_CREAT
оба передаются в один и тот же вызов для открытия.
Пока я жду, чтобы услышать от другого разработчика, есть ли у кого-нибудь идея, почему в этом вызове есть 4 аргумента: open()
?
Похоже, что некоторые версии контроля версий слияния пошли не так, не так ли? – Romain
Я нашел справочную страницу для open (3), которая принимает список vararg. Не знаю, почему, но вот оно. http://linux.die.net/man/3/open – JoeFish