/usr/share/cagefs-skeleton/usr/include/bits
/* Optimizing macros and inline functions for stdio functions. Copyright (C) 1998-2021 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see <https://www.gnu.org/licenses/>. */ #ifndef _BITS_STDIO_H #define _BITS_STDIO_H 1 #ifndef _STDIO_H # error "Never include <bits/stdio.h> directly; use <stdio.h> instead." #endif #ifndef __extern_inline # define __STDIO_INLINE inline #else # define __STDIO_INLINE __extern_inline #endif #ifdef __USE_EXTERN_INLINES /* For -D_FORTIFY_SOURCE{,=2,=3} bits/stdio2.h will define a different inline. */ # if !(__USE_FORTIFY_LEVEL > 0 && defined __fortify_function) /* Write formatted output to stdout from argument list ARG. */ __STDIO_INLINE int vprintf (const char *__restrict __fmt, __gnuc_va_list __arg) { return vfprintf (stdout, __fmt, __arg); } # endif /* Read a character from stdin. */ __STDIO_INLINE int getchar (void) { return getc (stdin); } # ifdef __USE_MISC /* Faster version when locking is not necessary. */ __STDIO_INLINE int fgetc_unlocked (FILE *__fp) { return __getc_unlocked_body (__fp); } # endif /* misc */ # ifdef __USE_POSIX199506 /* This is defined in POSIX.1:1996. */ __STDIO_INLINE int getc_unlocked (FILE *__fp) { return __getc_unlocked_body (__fp); } /* This is defined in POSIX.1:1996. */ __STDIO_INLINE int getchar_unlocked (void) { return __getc_unlocked_body (stdin); } # endif /* POSIX */ /* Write a character to stdout. */ __STDIO_INLINE int putchar (int __c) { return putc (__c, stdout); } # ifdef __USE_MISC /* Faster version when locking is not necessary. */ __STDIO_INLINE int fputc_unlocked (int __c, FILE *__stream) { return __putc_unlocked_body (__c, __stream); } # endif /* misc */ # ifdef __USE_POSIX199506 /* This is defined in POSIX.1:1996. */ __STDIO_INLINE int putc_unlocked (int __c, FILE *__stream) { return __putc_unlocked_body (__c, __stream); } /* This is defined in POSIX.1:1996. */ __STDIO_INLINE int putchar_unlocked (int __c) { return __putc_unlocked_body (__c, stdout); } # endif /* POSIX */ # ifdef __USE_GNU /* Like `getdelim', but reads up to a newline. */ __STDIO_INLINE __ssize_t getline (char **__lineptr, size_t *__n, FILE *__stream) { return __getdelim (__lineptr, __n, '\n', __stream); } # endif /* GNU */ # ifdef __USE_MISC /* Faster versions when locking is not required. */ __STDIO_INLINE int __NTH (feof_unlocked (FILE *__stream)) { return __feof_unlocked_body (__stream); } /* Faster versions when locking is not required. */ __STDIO_INLINE int __NTH (ferror_unlocked (FILE *__stream)) { return __ferror_unlocked_body (__stream); } # endif /* misc */ #endif /* Use extern inlines. */ #if defined __USE_MISC && defined __GNUC__ && defined __OPTIMIZE__ \ && !defined __cplusplus /* Perform some simple optimizations. */ # define fread_unlocked(ptr, size, n, stream) \ (__extension__ ((__builtin_constant_p (size) && __builtin_constant_p (n) \ && (size_t) (size) * (size_t) (n) <= 8 \ && (size_t) (size) != 0) \ ? ({ char *__ptr = (char *) (ptr); \ FILE *__stream = (stream); \ size_t __cnt; \ for (__cnt = (size_t) (size) * (size_t) (n); \ __cnt > 0; --__cnt) \ { \ int __c = getc_unlocked (__stream); \ if (__c == EOF) \ break; \ *__ptr++ = __c; \ } \ ((size_t) (size) * (size_t) (n) - __cnt) \ / (size_t) (size); }) \ : (((__builtin_constant_p (size) && (size_t) (size) == 0) \ || (__builtin_constant_p (n) && (size_t) (n) == 0)) \ /* Evaluate all parameters once. */ \ ? ((void) (ptr), (void) (stream), (void) (size), \ (void) (n), (size_t) 0) \ : fread_unlocked (ptr, size, n, stream)))) # define fwrite_unlocked(ptr, size, n, stream) \ (__extension__ ((__builtin_constant_p (size) && __builtin_constant_p (n) \ && (size_t) (size) * (size_t) (n) <= 8 \ && (size_t) (size) != 0) \ ? ({ const char *__ptr = (const char *) (ptr); \ FILE *__stream = (stream); \ size_t __cnt; \ for (__cnt = (size_t) (size) * (size_t) (n); \ __cnt > 0; --__cnt) \ if (putc_unlocked (*__ptr++, __stream) == EOF) \ break; \ ((size_t) (size) * (size_t) (n) - __cnt) \ / (size_t) (size); }) \ : (((__builtin_constant_p (size) && (size_t) (size) == 0) \ || (__builtin_constant_p (n) && (size_t) (n) == 0)) \ /* Evaluate all parameters once. */ \ ? ((void) (ptr), (void) (stream), (void) (size), \ (void) (n), (size_t) 0) \ : fwrite_unlocked (ptr, size, n, stream)))) #endif /* Define helper macro. */ #undef __STDIO_INLINE #endif /* bits/stdio.h. */
.
Edit
..
Edit
a.out.h
Edit
argp-ldbl.h
Edit
byteswap.h
Edit
cmathcalls.h
Edit
confname.h
Edit
cpu-set.h
Edit
dirent.h
Edit
dirent_ext.h
Edit
dlfcn.h
Edit
elfclass.h
Edit
endian.h
Edit
endianness.h
Edit
environments.h
Edit
epoll.h
Edit
err-ldbl.h
Edit
errno.h
Edit
error-ldbl.h
Edit
error.h
Edit
eventfd.h
Edit
fcntl-linux.h
Edit
fcntl.h
Edit
fcntl2.h
Edit
fenv.h
Edit
floatn-common.h
Edit
floatn.h
Edit
flt-eval-method.h
Edit
fp-fast.h
Edit
fp-logb.h
Edit
getopt_core.h
Edit
getopt_ext.h
Edit
getopt_posix.h
Edit
hwcap.h
Edit
in.h
Edit
indirect-return.h
Edit
inet-fortified-decl.h
Edit
inet-fortified.h
Edit
initspin.h
Edit
inotify.h
Edit
ioctl-types.h
Edit
ioctls.h
Edit
ipc-perm.h
Edit
ipc.h
Edit
ipctypes.h
Edit
iscanonical.h
Edit
libc-header-start.h
Edit
libm-simd-decl-stubs.h
Edit
link.h
Edit
link_lavcurrent.h
Edit
local_lim.h
Edit
locale.h
Edit
long-double.h
Edit
math-vector.h
Edit
mathcalls-helper-functions.h
Edit
mathcalls-narrow.h
Edit
mathcalls.h
Edit
mathdef.h
Edit
mman-linux.h
Edit
mman-map-flags-generic.h
Edit
mman-shared.h
Edit
mman.h
Edit
monetary-ldbl.h
Edit
mqueue.h
Edit
mqueue2.h
Edit
msq.h
Edit
netdb.h
Edit
param.h
Edit
platform
Edit
poll.h
Edit
poll2.h
Edit
posix1_lim.h
Edit
posix2_lim.h
Edit
posix_opt.h
Edit
printf-ldbl.h
Edit
procfs-extra.h
Edit
procfs-id.h
Edit
procfs-prregset.h
Edit
procfs.h
Edit
pthread_stack_min-dynamic.h
Edit
pthread_stack_min.h
Edit
pthreadtypes-arch.h
Edit
pthreadtypes.h
Edit
ptrace-shared.h
Edit
resource.h
Edit
rseq.h
Edit
sched.h
Edit
select.h
Edit
select2.h
Edit
sem.h
Edit
semaphore.h
Edit
setjmp.h
Edit
setjmp2.h
Edit
shm.h
Edit
shmlba.h
Edit
sigaction.h
Edit
sigcontext.h
Edit
sigevent-consts.h
Edit
siginfo-arch.h
Edit
siginfo-consts-arch.h
Edit
siginfo-consts.h
Edit
signal_ext.h
Edit
signalfd.h
Edit
signum-arch.h
Edit
signum-generic.h
Edit
sigstack.h
Edit
sigstksz.h
Edit
sigthread.h
Edit
sockaddr.h
Edit
socket-constants.h
Edit
socket.h
Edit
socket2.h
Edit
socket_type.h
Edit
ss_flags.h
Edit
stab.def
Edit
stat.h
Edit
statfs.h
Edit
statvfs.h
Edit
statx-generic.h
Edit
statx.h
Edit
stdint-intn.h
Edit
stdint-uintn.h
Edit
stdio-ldbl.h
Edit
stdio.h
Edit
stdio2-decl.h
Edit
stdio2.h
Edit
stdio_lim.h
Edit
stdlib-bsearch.h
Edit
stdlib-float.h
Edit
stdlib-ldbl.h
Edit
stdlib.h
Edit
string_fortified.h
Edit
strings_fortified.h
Edit
struct_mutex.h
Edit
struct_rwlock.h
Edit
struct_stat.h
Edit
struct_stat_time64_helper.h
Edit
syscall.h
Edit
syslog-ldbl.h
Edit
syslog-path.h
Edit
syslog.h
Edit
sysmacros.h
Edit
termios-baud.h
Edit
termios-c_cc.h
Edit
termios-c_cflag.h
Edit
termios-c_iflag.h
Edit
termios-c_lflag.h
Edit
termios-c_oflag.h
Edit
termios-misc.h
Edit
termios-struct.h
Edit
termios-tcflow.h
Edit
termios.h
Edit
thread-shared-types.h
Edit
time.h
Edit
time64.h
Edit
timerfd.h
Edit
timesize.h
Edit
timex.h
Edit
types
Edit
types.h
Edit
typesizes.h
Edit
uintn-identity.h
Edit
uio-ext.h
Edit
uio_lim.h
Edit
unistd.h
Edit
unistd_ext.h
Edit
utmp.h
Edit
utmpx.h
Edit
utsname.h
Edit
waitflags.h
Edit
waitstatus.h
Edit
wchar-ldbl.h
Edit
wchar.h
Edit
wchar2-decl.h
Edit
wchar2.h
Edit
wctype-wchar.h
Edit
wordsize.h
Edit
xopen_lim.h
Edit