Так что я прочитал в строке с помощью fgetsКак вы обнаруживаете ctrl + D в C?
line = fgets(l, BUFSIZ, stdin);
И я от того, что я понимаю, контроль + d является EOF, поэтому я попытался
if(line[0] == EOF)
continue;
, чтобы вернуться к началу цикла. Но это привело к segfaults ... Есть ли другой способ?
Из справочной страницы 'fgets' в Linux: * fgets() возвращает s при успешном запуске и NULL при ошибке или при завершении файла, когда никакие символы не были прочитаны. * – hyde
Ctrl-D является специфичным для операционной системы (не указано в стандарт C99). В Linux [Ctrl-D не является символом] (http://stackoverflow.com/a/24548128/841108), но обычно это * конец файла * ** условие ** –