1
我正在使用函數getopt_long
來獲取命令行選項。 我想在給出無效選項時忽略錯誤。 目前,它打印錯誤標準錯誤,如:如何忽略getopt_long中的無效選項
invalid option -- 's'
我正在使用函數getopt_long
來獲取命令行選項。 我想在給出無效選項時忽略錯誤。 目前,它打印錯誤標準錯誤,如:如何忽略getopt_long中的無效選項
invalid option -- 's'
有變量getopt.h這將避免打印錯誤,以stderr
如果你將它設置爲0
只要將它設置爲0 opterr
:
extern int opterr;
opterr = 0;
嗯,你是對的,這是可能的。正如我在我現在刪除的答案中指出的那樣,這不能可靠地工作:選項可能有參數('sed -e'),所以對於未知選項,不可能確定下列參數是否應該被解釋爲新選項,或者作爲無效選項的參數。所以,雖然你的回答是正確的,但我不能推薦使用它,除非你真的知道你在做什麼,並理解你將遇到的程序的未來版本與什麼樣的不兼容。 – hvd
順便說一句,如果你使用這個,你應該只包括'',而不是手動聲明'opterr'。 –
hvd
這只是簡單地忽略'getopts_long'打印的stderr,僅此而已。不確定會出現什麼不兼容。 opterr不是本地變量。它在getopt.h中聲明,並可以作爲這種情況選擇設置。我不能*看到*刪除的答案,還沒有:) –