2012-10-16 27 views

回答

3

有變量getopt.h這將避免打印錯誤,以stderr如果你將它設置爲0

只要將它設置爲0 opterr

extern int opterr; 

opterr = 0; 
+0

嗯,你是對的,這是可能的。正如我在我現在刪除的答案中指出的那樣,這不能可靠地工作:選項可能有參數('sed -e'),所以對於未知選項,不可能確定下列參數是否應該被解釋爲新選項,或者作爲無效選項的參數。所以,雖然你的回答是正確的,但我不能推薦使用它,除非你真的知道你在做什麼,並理解你將遇到的程序的未來版本與什麼樣的不兼容。 – hvd

+0

順便說一句,如果你使用這個,你應該只包括'',而不是手動聲明'opterr'。 – hvd

+0

這只是簡單地忽略'getopts_long'打印的stderr,僅此而已。不確定會出現什麼不兼容。 opterr不是本地變量。它在getopt.h中聲明,並可以作爲這種情況選擇設置。我不能*看到*刪除的答案,還沒有:) –