Я кодирую программный прокси, который перенаправляет стандартный вывод и т. д. в файлы с использованием: proxy [-i infile] [-o outfile] [-e errfile] cmd [options].
Итак, я хочу заставить getopt остановиться, когда он достигнет cmd, потому что он не должен анализировать параметры для .
Я читал о переменной среды POSIXLY_CORRECT, но я хочу, чтобы она не зависела от этого.
Итак, мой вопрос заключается в том, как достичь именно этого.
Часть моего кода до сих пор
while ((opt = getopt (argc, argv, "i:o:e:")) != -1)
switch (opt)
{
case 'i':
i = 1;
strcpy(input, optarg);
break;
case 'o':
o = 1;
strcpy(output, optarg);
break;
case 'e':
e = 1;
strcpy(error, optarg);
break;
default:
fprintf(stderr, "usage: proxy [-i infile] [-o outfile] [-e errfile] <cmd> [options]\n");
return -1;
}
Это будет входить в регистр по умолчанию все время, когда указана опция для cmd :(