Я пишу утилиту командной строки в C для обработки файлов изображений. В своем текущем состоянии приложение может принимать несколько явных имен файлов, хотя argv
, но я хотел бы добавить поддержку подстановочных знаков, например:
imgprocess.exe *.png *.gif
или
./imgprocess *.png *.gif
Похоже, это должно быть достаточно распространенным явлением, чтобы его поддерживал C99, но мне очень трудно найти стандартное кроссплатформенное решение.
Для Windows, кажется (через эту статью ), что ссылка на setargv.obj
делает свое дело, но это специфично для Windows, и я думаю, Visual Studio.
Для Linux это выглядит так: readdir()
или scandir()
может принести мне список каталогов, и я могу выполнить итерацию по нему для сопоставления файлов, но я думаю, что это просто Linux .
Поскольку подстановочные знаки - это обычное дело, я чувствую, что упускаю какое-то простое очевидное решение. В настоящее время я работаю над компиляцией Linux с помощью gcc, но мне бы хотелось, чтобы он компилировался как минимум для Windows и Linux.
Спасибо за любой совет.