root/maint/gnulib/lib/getnline.h

/* [previous][next][first][last][top][bottom][index][help] */

INCLUDED FROM


   1 /* getnline - Read a line from a stream, with bounded memory allocation.
   2 
   3    Copyright (C) 2003-2004, 2009-2021 Free Software Foundation, Inc.
   4 
   5    This program is free software: you can redistribute it and/or modify
   6    it under the terms of the GNU General Public License as published by
   7    the Free Software Foundation; either version 3 of the License, or
   8    (at your option) any later version.
   9 
  10    This program is distributed in the hope that it will be useful,
  11    but WITHOUT ANY WARRANTY; without even the implied warranty of
  12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13    GNU General Public License for more details.
  14 
  15    You should have received a copy of the GNU General Public License
  16    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
  17 
  18 #ifndef GETNLINE_H
  19 #define GETNLINE_H 1
  20 
  21 #include <stdio.h>
  22 #include <sys/types.h>
  23 
  24 #define GETNLINE_NO_LIMIT ((size_t) -1)
  25 
  26 /* Read a line, up to the next newline, from STREAM, and store it in *LINEPTR.
  27    *LINEPTR is a pointer returned from malloc (or NULL), pointing to *LINESIZE
  28    bytes of space.  It is realloc'd as necessary.  Reallocation is limited to
  29    NMAX bytes; if the line is longer than that, the extra bytes are read but
  30    thrown away.
  31    Return the number of bytes read and stored at *LINEPTR (not including the
  32    NUL terminator), or -1 on error or EOF.  */
  33 extern ssize_t getnline (char **lineptr, size_t *linesize, size_t nmax,
  34                          FILE *stream);
  35 
  36 /* Read a line, up to the next occurrence of DELIMITER, from STREAM, and store
  37    it in *LINEPTR.
  38    *LINEPTR is a pointer returned from malloc (or NULL), pointing to *LINESIZE
  39    bytes of space.  It is realloc'd as necessary.  Reallocation is limited to
  40    NMAX bytes; if the line is longer than that, the extra bytes are read but
  41    thrown away.
  42    Return the number of bytes read and stored at *LINEPTR (not including the
  43    NUL terminator), or -1 on error or EOF.  */
  44 extern ssize_t getndelim (char **lineptr, size_t *linesize, size_t nmax,
  45                           int delimiter, FILE *stream);
  46 
  47 #endif /* GETNLINE_H */

/* [previous][next][first][last][top][bottom][index][help] */