2012-12-14 31 views
0

我正在爲我的大學工作/開發一個C程序,它可以在調用時有3個選項(-h幫助,-o <argument>(有或沒有它),最後一個選項可以是像(test-in-1)的字符串):當選項是C上的字符串時如何使用getopt?

./myprogram test-in-1 

我來處理我的主要選項,並做什麼需要時調用它們。他們都不是強制性的。

我想使用getopt不過來解析選項的其中之一選項實際上是一個string(char *),並與這一個,我有點不知所措,因爲getopt不能夠讀取字符串,只有字符或字符與一個論點(例如,-h,-o <argument>,據我瞭解)。任何想法我怎麼能做到這一點?

我不能真的發佈除主線以外的任何代碼,因爲我在卡住它的開始(int main(int argc, char *argv[]))

預先感謝任何意見/正確的方向點。

+0

請參閱[this](http://stackoverflow.com/questions/13691715/what-is-the-best-practice-for-creating-a-unix-linux-command-line-tool-in-cc? lq = 1) – t0mm13b

+0

謝謝!看起來很容易理解! – marisa79

+0

'test-in-1'不是一個選項,它是一個常規參數。 'getopt()'和類似的庫通常只處理以'-'(或'getopt_long()'中的'+')開頭的選項。字符串參數留給程序自己處理。 – Barmar

回答

0

您可以傳遞冒號:這意味着它需要一個參數,並且該參數將在optarg中設置。

my answer here

+0

也許我還不夠清楚,我的問題是這個選項是一個字符串,而不是一個選項的參數,各個教程都解釋得很好。或者我完全錯了getopt()? – marisa79

+0

@ mario79我鏈接了getopt_long()的另一個選項。 – 2012-12-14 02:01:50

相關問題