gcc -Wall typoknig.c
typoknig.c:19: error: conflicting types for ‘getline’
//usr/include/stdio.h:671: note: previous declaration of ‘getline’ was here
typoknig.c:21: error: conflicting types for ‘getline’
//usr/include/stdio.h:671: note: previous declaration of ‘getline’ was here
Два отдельных объявления getline
, которые Энди рекомендовал использовать my_getline()
, так как первое уже является частью stdio.h
.
typoknig.c: In function 'getline ':
typoknig.c: 27: предупреждение: неявное объявление функции' exit '
typoknig.c: 27: предупреждение: несовместимое неявное объявление встроенной функции' exit '
Это не может быть хорошо, man exit
говорит прямо вверху:
#include <stdlib.h>
void exit(int status);
возможно, вам нужно включить stdlib.h
?Что gcc предполагает, что это подпись необъявленной функции?
typoknig.c: В функции 'handle_SIGINT':
typoknig.c: 59: предупреждение: неявное объявление функции 'strlen'
typoknig.c: 59: предупреждение: несовместимое неявное объявление встроенной функции 'strlen'
Ой, man strlen
на помощь:
#include <string.h>
К счастью,string.h
поможет со следующим, и мы уже прибили exit
:
typoknig.c: В функции 'main':
typoknig.c: 70: предупреждение: неявное объявлениефункции 'strcpy'
typoknig.c: 70: предупреждение: несовместимое неявное объявление встроенной функции 'strcpy'
typoknig.c: 85: предупреждение: несовместимое неявное объявление встроенной функции 'exit'
Разве это не изящный препроцессор?
typoknig.c:87: warning: implicit declaration of function ‘waitpid’
typoknig.c:64: warning: unused variable ‘ret’
Sayeth man waitpid
:
#include <sys/types.h>
#include <sys/wait.h>
Строка 64 оставлена в качестве упражнения для читателя.