4460
|
1 /* getnline - Read a line from a stream, with bounded memory allocation. |
|
2 |
|
3 Copyright (C) 2003 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 2, or (at your option) |
|
8 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, write to the Free Software Foundation, |
|
17 Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ |
|
18 |
|
19 #ifndef GETNLINE_H |
|
20 #define GETNLINE_H 1 |
|
21 |
|
22 #include <stddef.h> |
|
23 #include <stdio.h> |
|
24 |
|
25 /* Get ssize_t. */ |
|
26 #include <sys/types.h> |
|
27 |
|
28 /* Read a line, up to the next newline, from STREAM, and store it in *LINEPTR. |
|
29 *LINEPTR is a pointer returned from malloc (or NULL), pointing to *LINESIZE |
|
30 bytes of space. It is realloc'd as necessary. Reallocation is limited to |
|
31 NMAX bytes; if the line is longer than that, the extra bytes are read but |
|
32 thrown away. |
|
33 Return the number of bytes read and stored at *LINEPTR (not including the |
|
34 NUL terminator), or -1 on error or EOF. */ |
|
35 extern ssize_t getnline (char **lineptr, size_t *linesize, size_t nmax, |
|
36 FILE *stream); |
|
37 |
|
38 /* Read a line, up to the next occurrence of DELIMITER, from STREAM, and store |
|
39 it in *LINEPTR. |
|
40 *LINEPTR is a pointer returned from malloc (or NULL), pointing to *LINESIZE |
|
41 bytes of space. It is realloc'd as necessary. Reallocation is limited to |
|
42 NMAX bytes; if the line is longer than that, the extra bytes are read but |
|
43 thrown away. |
|
44 Return the number of bytes read and stored at *LINEPTR (not including the |
|
45 NUL terminator), or -1 on error or EOF. */ |
|
46 extern ssize_t getndelim (char **lineptr, size_t *linesize, size_t nmax, |
|
47 int delimiter, FILE *stream); |
|
48 |
|
49 #endif /* GETNLINE_H */ |