2015-11-04 34 views
0

我不知道如何在我的方案中使用getopt命令。 我想下面輸入命令:Getopt函數不帶選項只是參數

mydiff file1 file2 

所以沒有選項只是兩個文件名。任何想法如何做到這一點?

+1

是否需要'getopt'?你可以聲明'int main(int argc,char * argv [])'並從'argv []'中獲取文件名。 – Arc676

+0

「*如何使用getopt命令*」只是不。直接使用'main()'的參數。 – alk

+0

相關,如果不是重複的:http://stackoverflow.com/q/18079340/694576 – alk

回答

1

如果你的程序不接受POSIX風格的選項,那麼alk就有權 - 如果你沒有選擇,你不需要getopt()

每getopt的(3)手冊頁,一旦getopt()已用盡所提供的選項(其是選項,的數量可以是零),則返回(int) -1並設置optind到第一非選擇的參數的索引在argv[],在你的例子中,它將是argv[1] -> file1

+0

好吧,我明白了。我怎麼能檢查是否有任何選擇,如果真的有我想給出一個錯誤。此刻,我收到了一條無用信息。我想我可以做,如果(getopt(argc,argv,「」)!= - 1)然後錯誤。 – craaaft

+0

你可以嘗試一下,看看會發生什麼,但我不知道任何股票的Unix工具,明確檢查不需要的_types_參數。在這種情況下,我做過的最多的事情就像'if(argc MAXARGS)',其中'MAXARGS = 3'和'MINARGS = 3'(或者'MINARGS = 1',如果我們可以的話作爲過濾器運行。) –