1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-28 00:21:52 +03:00

libio: Implement internal function __libc_readline_unlocked

This is a variant of fgets which fails with ERANGE if the
buffer is too small, and the buffer length is given as an
argument of type size_t.

This function will be useful for implementing NSS file reading
operations.  Compared to a direct implementation using the public API,
it avoids an lseek system call in case the line terminator can be
found in the internal read buffer.
This commit is contained in:
Florian Weimer
2018-07-06 16:53:48 +02:00
parent 397c54c1af
commit 3f5e3f5d06
10 changed files with 471 additions and 9 deletions

View File

@ -24,12 +24,15 @@
This exception applies to code released by its copyright holders
in files containing the exception. */
/* We need to disable the redirect for __ftello64 for the alias
definitions below to work. */
#define __ftello64 __ftello64_disable
#include <stdio.h>
#include <stdlib.h>
#include <libioP.h>
#include <errno.h>
off_t
__ftello (FILE *fp)
{
@ -61,4 +64,7 @@ weak_alias (__ftello, ftello)
#ifdef __OFF_T_MATCHES_OFF64_T
weak_alias (__ftello, ftello64)
# undef __ftello64
strong_alias (__ftello, __ftello64)
libc_hidden_ver (__ftello, __ftello64)
#endif