Expand on API guarantee for fgetln

OpenBSD has begun using the API guarantee that *len is not 0 if
the fgetln(3) return value is not NULL; document this explicitly
in the manpage and add a comment to the function implementation
that this doesn’t need to be checked because getdelim/getline have
similar guarantees.

Signed-off-by: Thorsten Glaser <tg@mirbsd.org>
This commit is contained in:
Thorsten Glaser 2009-12-10 18:07:25 +01:00 committed by Guillem Jover
parent a5dbef45e7
commit c17c7e13c3
2 changed files with 2 additions and 1 deletions

View File

@ -54,7 +54,7 @@ character.
The length of the line, including the final newline, The length of the line, including the final newline,
is stored in the memory location to which is stored in the memory location to which
.Fa len .Fa len
points. points and is guaranteed to be greater than 0 upon successful completion.
(Note, however, that if the line is the last (Note, however, that if the line is the last
in a file that does not end in a newline, in a file that does not end in a newline,
the returned text will not contain a newline.) the returned text will not contain a newline.)

View File

@ -39,6 +39,7 @@ fgetln (FILE *stream, size_t *len)
ssize_t nread; ssize_t nread;
nread = getline(&line, &line_len, stream); nread = getline(&line, &line_len, stream);
/* Note: the getdelim/getline API ensures nread != 0. */
if (nread == -1) { if (nread == -1) {
*len = 0; *len = 0;
return NULL; return NULL;