Ваше предположение, что Windows cmd.exe и оболочка Linux работают одинаково, неверно.Попробуйте выполнить echo *
в обеих системах - Windows отобразит *
, Linux отобразит список файлов в текущем каталоге.
Программа Windows получит *
в argv[1]
и ничего больше.Программа Linux получит несколько элементов в argv
, каждый из которых будет полным именем файла, включая пробелы, если таковые имеются.
int main(int argc, char **argv)
{
int i;
for (i = 0; i < argc; ++i)
{
printf("%d: %s\n", i, argv[i]);
}
return 0;
}