aboutsummaryrefslogtreecommitdiffstats
path: root/libio/ftello.c
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2018-07-06 16:53:48 +0200
committerFlorian Weimer <fweimer@redhat.com>2018-07-06 17:52:54 +0200
commit3f5e3f5d066dcffb80af48ae2cf35a01a85a8f10 (patch)
tree2eb99509fbdfb5f61ee40bdf634c63f092b85ae2 /libio/ftello.c
parent397c54c1afa531242602fe3ac7bb47eff0e909f9 (diff)
downloadtermbaud-3f5e3f5d066dcffb80af48ae2cf35a01a85a8f10.tar.gz
termbaud-3f5e3f5d066dcffb80af48ae2cf35a01a85a8f10.tar.xz
termbaud-3f5e3f5d066dcffb80af48ae2cf35a01a85a8f10.zip
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.
Diffstat (limited to 'libio/ftello.c')
-rw-r--r--libio/ftello.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/libio/ftello.c b/libio/ftello.c
index 5405821b455..5a3caf4ad98 100644
--- a/libio/ftello.c
+++ b/libio/ftello.c
@@ -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