我正在開源一些由我自己和其他一些人編寫的代碼。在被其他人的一個寫好的代碼段中的一個,我看到以下內容:打開的參數太多()
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()
被傳遞了太多的參數(從我的角度來看,這是正確的,因爲open只接受2或3個參數)。我也很困惑,爲什麼O_RDONLY | O_CREAT
和O_WRONLY | O_CREAT
都在同一個調用中被傳遞打開。
當我等待其他開發者的回覆時,有沒有人有一個想法,爲什麼有4個參數在open()
這個調用?
看起來很像一些版本控制版本合併在那裏出錯了,不是嗎? – Romain 2012-01-09 16:41:25
我確實找到了打開(3)的手冊頁,其中包含可變參數列表。不知道爲什麼,但它在那裏。 http://linux.die.net/man/3/open – JoeFish 2012-01-09 16:45:54