所以我知道你可以使用getopt()
來查找選項參數,但是argv數組中的其他內容如目標呢?有沒有辦法做到這一點使用getopt()
?通過手冊頁看,我什麼也沒有看到......也許我錯過了它。使用getopt()查找目標
0
A
回答
2
使用optarg
表示(它是一個字符串,使用sscanf
來讀取它)。
從man 3 getopt
報價:
optstring is a string containing the legitimate option characters. If such a character is followed by a colon, the option requires an argument, so getopt()
places a pointer to the following text in the same argv-element, or the text of the following argv-element, in optarg. Two colons mean an option takes an
optional arg; if there is text in the current argv-element (i.e., in the same word as the option name itself, for example, "-oarg"), then it is returned in
optarg, otherwise optarg is set to zero. This is a GNU extension. If optstring contains W followed by a semicolon, then -W foo is treated as the long
option --foo. (The -W option is reserved by POSIX.2 for implementation extensions.) This behavior is a GNU extension, not available with libraries before
glibc 2.
如果你有額外的參數(點菜cp -l file1 file2
)它們保留在argv
最新的位置,從optind
。
PS:在man
頁面末尾還有一個示例。
+0
沒錯,但我不知道如何告訴getopt()來查找這些參數。現在我以這種方式調用getopt:'getopt(argc,argv,「f:j:」)'所以我告訴它首先查找'-f'選項並返回參數,然後它執行相同的操作爲'-j'選項。但是如果我有一個額外的字符串需要解析,而且它之前沒有'-f'或'-j'說明符,那又如何呢? – user2079802
+0
它會留在'argv'中,你可以從那裏讀取它。所有不匹配的選項都留在那裏。 –
相關問題
- 1. 查找目標
- 2. 使用cURL查找目標網址
- 3. 強制使用標誌Getopt :: Long
- 4. 使用jQuery.ui.maps查找標記 -
- 5. Getopt :: Declare vs Getopt :: Long
- 6. 我該如何使用getopt?
- 7. 如何查找目標目錄
- 8. 使用objdump查找目標文件的偏移量
- 9. 使用路由表查找目標地址的接口名稱
- 10. JPARepository使用方法返回類型來查找目標表嗎?
- 11. 使用shell腳本在XCode項目中查找包標識符
- 12. 在getopt命令中查找多個參數Python 3
- 13. 使用Scipy找到目標值Python
- 14. 如何使用Getopt :: Std來響應--help標誌?
- 15. Eclipse:「查找所有引用」忽略目標目錄
- 16. 使用目標從給定的RSS說明中查找圖像url描述使用目標C
- 17. 查找版本在項目中使用
- 18. 使用prev()查找項目編號?
- 19. 使用mysql查找相關項目?
- 20. 使用PHP查找目錄名稱
- 21. 使用jQuery查找可見項目
- 22. DNS查找 - 確定目標服務器
- 23. 查找球的目標位置
- 24. 如何在列中查找目標值?
- 25. 查找單個手指點擊目標
- 26. React Event Bubbling:查找目標組件
- 27. 從Spring中查找activeMQ目標
- 28. 在陣列中查找目標int
- 29. 在WkWebView中查找導航目標
- 30. 查找重力的目標c
'argv'中的目標是什麼?也許可以考慮(在Linux上)[argp函數](http://www.gnu.org/software/libc/manual/html_node/Argp.html) –
您可以詳細說明您的「目標」嗎? –
我在下面的評論中解釋了第一個答案。 – user2079802