Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
GETLINE(3)		     Library Functions Manual		      GETLINE(3)

NAME
     getdelim, getline -- get a line from a stream

LIBRARY
     Standard C Library (libc, -lc)

SYNOPSIS
     #include <stdio.h>

     ssize_t
     getdelim(char ** restrict linep, size_t * restrict linecapp, int delimiter,
	 FILE * restrict stream);

     ssize_t
     getline(char ** restrict linep, size_t * restrict linecapp,
	 FILE * restrict stream);

DESCRIPTION
     The  getdelim() function reads a line from stream, delimited by the charac-
     ter delimiter.  The getline() function is equivalent to getdelim() with the
     newline character as the delimiter.  The delimiter character is included as
     part of the line, unless the end of the file is reached.

     The caller may provide a pointer to a  malloced  buffer  for  the	line  in
     *linep,  and the capacity of that buffer in *linecapp.  These functions ex-
     pand the buffer as needed, as if via realloc().  If linep points to a  NULL
     pointer,  a  new  buffer  will  be  allocated.   In either case, *linep and
     *linecapp will be updated accordingly.

RETURN VALUES
     The getdelim() and getline() functions  return  the  number  of  characters
     stored  in  the buffer, excluding the terminating NUL character.  The value
     -1 is returned if an error occurs, or if end-of-file is reached.

EXAMPLES
     The following code fragment reads lines from a  file  and	writes	them  to
     standard  output.	 The fwrite() function is used in case the line contains
     embedded NUL characters.

	   char *line = NULL;
	   size_t linecap = 0;
	   ssize_t linelen;
	   while ((linelen = getline(&line, &linecap, fp)) > 0)
		   fwrite(line, linelen, 1, stdout);
	   free(line);

ERRORS
     These functions may fail if:

     [EINVAL]		Either linep or linecapp is NULL.

     [EOVERFLOW]	No delimiter was found in the  first  SSIZE_MAX  charac-
			ters.

     These  functions  may  also  fail	due  to  any of the errors specified for
     fgets() and malloc().

SEE ALSO
     fgetln(3), fgets(3), malloc(3)

STANDARDS
     The getdelim() and getline() functions  conform  to  IEEE	Std  1003.1-2008
     ("POSIX.1").

HISTORY
     These routines first appeared in FreeBSD 8.0.

BUGS
     There are no wide character versions of getdelim() or getline().

FreeBSD ports 15.1		  July 30, 2016 		      GETLINE(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=getline&sektion=3&manpath=FreeBSD+15.1-RELEASE+and+Ports>

home | help