Вам нужно разбить проблему, возможно, спросите о конкретных образцах, которые вы создадите.
В этом коде может быть несколько проблем.
Для segfault я рекомендую один шаг в отладчике ... (например, gdb). Кроме того, лучше, если вы изолируете проблему в несколько строк, а не ожидаете, что кто-то отладит весь ваш код для вас.
Например:
// параметр -s 'c.h.a.r' / usr / share / dict / words, но он не обнаруживает ни одной строки в argv [0], поэтому он не вводится во время цикла
Проверьте только это с параметрами -a 'c.h.a.r'
/*option*/
while (--argc > 0 && (*++argv)[0] == '-' )
printf("opt=> '%s'\n", argv[0]);
Это отлично работает, поднимает '-'.
и т. Д.