對於我的學校項目,我試圖實現擴展名爲* .jpg,* .c的文件擴展名。爲此,我必須使用像readdir(2)和getdents(3)這樣的函數來讀取當前目錄中的所有文件,然後使用strstr(3)來匹配它們,然後將它們添加到傳遞給exec(2)的參數列表中。我不假設使用glob(3)。我應該如何實現這一點?支持文件擴展擴展
Q
支持文件擴展擴展
0
A
回答
0
POSIX提供了支持globbing的函數;標準C不會,而微軟則完全不同。
標題<fnmatch.h>
和函數fnmatch()
可能是答案的一部分;這允許您使用opendir()
,readdir()
和closedir()
函數來掃描目錄並將文件名與您的glob模式進行匹配。
如果不是針對問題中的禁止,您可能會發現<glob.h>
標題和glob()
函數更合適。
你可以看看<wordexp.h>
標題和wordexp()
。這比3210做的還要多,但如果它沒有被禁止,會爲你節省很多的努力。
通常情況下,3210是最有可能做你需要的。但是,因爲這被排除了,也許你可以使用,它希望你從文件名中得到...實際上,它並不關心你從哪裏得到名字;它只是驗證您提供的名稱是否與您指定的文件名稱模式相匹配。
如果你不打算使用其中的任何一個,那麼你將不得不實現足夠的正則表達式來匹配你期望識別的shell地球,並且仍然使用readdir()
等來檢查可用的名稱。
相關問題
- 1. cockroachdb是否支持擴展?
- 2. 不Qt的擴展支持
- 3. Android soundPool支持擴展?
- 4. MinOrDefault擴展不支持
- 5. NodeJS擴展ASCII支持
- 6. ARM OpenCL支持cl_khr_fp64擴展
- 7. ArrayList的擴展支持事件
- 8. 支持擴展服務器端包括(XSSI)的IIS mod /擴展?
- 9. Objective-C:獲取文件類型支持的文件擴展名
- 10. 導出文件以及unicode支持文件擴展名爲.po
- 11. CIFilterGenerator文件擴展
- 12. 文件擴展名
- 13. 文件擴展名[]
- 14. APK擴展文件
- 15. Android擴展文件。
- 16. JSON文件擴展
- 17. Perl文件擴展
- 18. 文件擴展名
- 19. APK擴展文件
- 20. Android擴展文件
- 21. 擴展XSD文件
- 22. 擴展文件類
- 23. 文件擴展名
- 24. 文件擴展名
- 25. 文件擴展名
- 26. 文件擴展JFormField
- 27. 如何使webpack支持擴展別名
- 28. 擴展NHibernate以支持聚合函數
- 29. GLSL:檢查是否支持擴展
- 30. W - - 擴展PageChooserBlock以支持外部URL
有沒有理由不想使用glob(3)'?其操作系統類爲 – dmckee
,所以效率是必須的,我們不假設使用glob(3)。 – user1535672
好理由。在文中提到你不應該使用它是有幫助的,以免你得到一堆答案。 – dmckee