The other answers have covered most of this, but there are several problems. First, getline()
is not in the C standard library, but is a POSIX 2008 extension. Normally, it will be available with a POSIX-compatible compiler, as the macros _POSIX_C_SOURCE will be defined with the appropriate values. You possibly have an older compiler from before getline()
was standardized, in which case this is a GNU extension, and you must #define _GNU_SOURCE
before #include <stdio.h>
to enable it, and must be using a GNU-compatible compiler, such as gcc.
Additionally, nbytes
should have type size_t
, not int
. On my system, at least, these are of different size, with size_t
being longer, and using an int*
instead of a size_t*
can have grave consequences (and also doesn't compile with default gcc settings). See the getline manual page (http://linux.die.net/man/3/getline) for details.
With that change made, your program compiles and runs fine on my system.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…