Mic*_*ael 1 c arguments cross-platform wildcard
我正在用 C 编写一个命令行实用程序来处理图像文件。在当前状态下,应用程序可以接受多个显式文件名argv,但我想添加对通配符的支持,如下所示:
imgprocess.exe *.png *.gif
Run Code Online (Sandbox Code Playgroud)
或者
./imgprocess *.png *.gif
Run Code Online (Sandbox Code Playgroud)
看起来这应该是 C99 支持的常见问题,但我很难找到标准的跨平台解决方案。
对于 Windows,看起来(通过本文)链接到setargv.obj可以解决问题,但这是特定于 Windows 的,我认为是 Visual Studio。
对于 Linux,它看起来readdir()或者scandir()可以给我一个目录列表,我可以迭代它来匹配文件,但我认为这只是 Linux。
由于通配符是如此常见,我觉得我错过了某种简单明显的解决方案。目前我正在 Linux 上使用 gcc 进行编译,但我希望它至少能够针对 Windows 和 Linux 进行编译。
感谢您的任何建议。