/* Checking macros for stdio functions. Copyright (C) 2004-2018 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 <http://www.gnu.org/licenses/>. */ #ifndef _STDIO_H # error "Never include <bits/stdio2.h> directly; use <stdio.h> instead." #endif extern int __sprintf_chk (char *__restrict __s, int __flag, size_t __slen, const char *__restrict __format, ...) __THROW; extern int __vsprintf_chk (char *__restrict __s, int __flag, size_t __slen, const char *__restrict __format, _G_va_list __ap) __THROW; #ifdef __va_arg_pack __fortify_function int __NTH (sprintf (char *__restrict __s, const char *__restrict __fmt, ...)) { return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1, __bos (__s), __fmt, __va_arg_pack ()); } #elif !defined __cplusplus # define sprintf(str, ...) \ __builtin___sprintf_chk (str, __USE_FORTIFY_LEVEL - 1, __bos (str), \ __VA_ARGS__) #endif __fortify_function int __NTH (vsprintf (char *__restrict __s, const char *__restrict __fmt, _G_va_list __ap)) { return __builtin___vsprintf_chk (__s, __USE_FORTIFY_LEVEL - 1, __bos (__s), __fmt, __ap); } #if defined __USE_ISOC99 || defined __USE_UNIX98 extern int __snprintf_chk (char *__restrict __s, size_t __n, int __flag, size_t __slen, const char *__restrict __format, ...) __THROW; extern int __vsnprintf_chk (char *__restrict __s, size_t __n, int __flag, size_t __slen, const char *__restrict __format, _G_va_list __ap) __THROW; # ifdef __va_arg_pack __fortify_function int __NTH (snprintf (char *__restrict __s, size_t __n, const char *__restrict __fmt, ...)) { return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1, __bos (__s), __fmt, __va_arg_pack ()); } # elif !defined __cplusplus # define snprintf(str, len, ...) \ __builtin___snprintf_chk (str, len, __USE_FORTIFY_LEVEL - 1, __bos (str), \ __VA_ARGS__) # endif __fortify_function int __NTH (vsnprintf (char *__restrict __s, size_t __n, const char *__restrict __fmt, _G_va_list __ap)) { return __builtin___vsnprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1, __bos (__s), __fmt, __ap); } #endif #if __USE_FORTIFY_LEVEL > 1 extern int __fprintf_chk (FILE *__restrict __stream, int __flag, const char *__restrict __format, ...); extern int __printf_chk (int __flag, const char *__restrict __format, ...); extern int __vfprintf_chk (FILE *__restrict __stream, int __flag, const char *__restrict __format, _G_va_list __ap); extern int __vprintf_chk (int __flag, const char *__restrict __format, _G_va_list __ap); # ifdef __va_arg_pack __fortify_function int fprintf (FILE *__restrict __stream, const char *__restrict __fmt, ...) { return __fprintf_chk (__stream, __USE_FORTIFY_LEVEL - 1, __fmt, __va_arg_pack ()); } __fortify_function int printf (const char *__restrict __fmt, ...) { return __printf_chk (__USE_FORTIFY_LEVEL - 1, __fmt, __va_arg_pack ()); } # elif !defined __cplusplus # define printf(...) \ __printf_chk (__USE_FORTIFY_LEVEL - 1, __VA_ARGS__) # define fprintf(stream, ...) \ __fprintf_chk (stream, __USE_FORTIFY_LEVEL - 1, __VA_ARGS__) # endif __fortify_function int vprintf (const char *__restrict __fmt, _G_va_list __ap) { #ifdef __USE_EXTERN_INLINES return __vfprintf_chk (stdout, __USE_FORTIFY_LEVEL - 1, __fmt, __ap); #else return __vprintf_chk (__USE_FORTIFY_LEVEL - 1, __fmt, __ap); #endif } __fortify_function int vfprintf (FILE *__restrict __stream, const char *__restrict __fmt, _G_va_list __ap) { return __vfprintf_chk (__stream, __USE_FORTIFY_LEVEL - 1, __fmt, __ap); } # ifdef __USE_XOPEN2K8 extern int __dprintf_chk (int __fd, int __flag, const char *__restrict __fmt, ...) __attribute__ ((__format__ (__printf__, 3, 4))); extern int __vdprintf_chk (int __fd, int __flag, const char *__restrict __fmt, _G_va_list __arg) __attribute__ ((__format__ (__printf__, 3, 0))); # ifdef __va_arg_pack __fortify_function int dprintf (int __fd, const char *__restrict __fmt, ...) { return __dprintf_chk (__fd, __USE_FORTIFY_LEVEL - 1, __fmt, __va_arg_pack ()); } # elif !defined __cplusplus # define dprintf(fd, ...) \ __dprintf_chk (fd, __USE_FORTIFY_LEVEL - 1, __VA_ARGS__) # endif __fortify_function int vdprintf (int __fd, const char *__restrict __fmt, _G_va_list __ap) { return __vdprintf_chk (__fd, __USE_FORTIFY_LEVEL - 1, __fmt, __ap); } # endif # ifdef __USE_GNU extern int __asprintf_chk (char **__restrict __ptr, int __flag, const char *__restrict __fmt, ...) __THROW __attribute__ ((__format__ (__printf__, 3, 4))) __wur; extern int __vasprintf_chk (char **__restrict __ptr, int __flag, const char *__restrict __fmt, _G_va_list __arg) __THROW __attribute__ ((__format__ (__printf__, 3, 0))) __wur; extern int __obstack_printf_chk (struct obstack *__restrict __obstack, int __flag, const char *__restrict __format, ...) __THROW __attribute__ ((__format__ (__printf__, 3, 4))); extern int __obstack_vprintf_chk (struct obstack *__restrict __obstack, int __flag, const char *__restrict __format, _G_va_list __args) __THROW __attribute__ ((__format__ (__printf__, 3, 0))); # ifdef __va_arg_pack __fortify_function int __NTH (asprintf (char **__restrict __ptr, const char *__restrict __fmt, ...)) { return __asprintf_chk (__ptr, __USE_FORTIFY_LEVEL - 1, __fmt, __va_arg_pack ()); } __fortify_function int __NTH (__asprintf (char **__restrict __ptr, const char *__restrict __fmt, ...)) { return __asprintf_chk (__ptr, __USE_FORTIFY_LEVEL - 1, __fmt, __va_arg_pack ()); } __fortify_function int __NTH (obstack_printf (struct obstack *__restrict __obstack, const char *__restrict __fmt, ...)) { return __obstack_printf_chk (__obstack, __USE_FORTIFY_LEVEL - 1, __fmt, __va_arg_pack ()); } # elif !defined __cplusplus # define asprintf(ptr, ...) \ __asprintf_chk (ptr, __USE_FORTIFY_LEVEL - 1, __VA_ARGS__) # define __asprintf(ptr, ...) \ __asprintf_chk (ptr, __USE_FORTIFY_LEVEL - 1, __VA_ARGS__) # define obstack_printf(obstack, ...) \ __obstack_printf_chk (obstack, __USE_FORTIFY_LEVEL - 1, __VA_ARGS__) # endif __fortify_function int __NTH (vasprintf (char **__restrict __ptr, const char *__restrict __fmt, _G_va_list __ap)) { return __vasprintf_chk (__ptr, __USE_FORTIFY_LEVEL - 1, __fmt, __ap); } __fortify_function int __NTH (obstack_vprintf (struct obstack *__restrict __obstack, const char *__restrict __fmt, _G_va_list __ap)) { return __obstack_vprintf_chk (__obstack, __USE_FORTIFY_LEVEL - 1, __fmt, __ap); } # endif #endif #if __GLIBC_USE (DEPRECATED_GETS) extern char *__gets_chk (char *__str, size_t) __wur; extern char *__REDIRECT (__gets_warn, (char *__str), gets) __wur __warnattr ("please use fgets or getline instead, gets can't " "specify buffer size"); __fortify_function __wur char * gets (char *__str) { if (__bos (__str) != (size_t) -1) return __gets_chk (__str, __bos (__str)); return __gets_warn (__str); } #endif extern char *__fgets_chk (char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __wur; extern char *__REDIRECT (__fgets_alias, (char *__restrict __s, int __n, FILE *__restrict __stream), fgets) __wur; extern char *__REDIRECT (__fgets_chk_warn, (char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream), __fgets_chk) __wur __warnattr ("fgets called with bigger size than length " "of destination buffer"); __fortify_function __wur char * fgets (char *__restrict __s, int __n, FILE *__restrict __stream) { if (__bos (__s) != (size_t) -1) { if (!__builtin_constant_p (__n) || __n <= 0) return __fgets_chk (__s, __bos (__s), __n, __stream); if ((size_t) __n > __bos (__s)) return __fgets_chk_warn (__s, __bos (__s), __n, __stream); } return __fgets_alias (__s, __n, __stream); } extern size_t __fread_chk (void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __wur; extern size_t __REDIRECT (__fread_alias, (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream), fread) __wur; extern size_t __REDIRECT (__fread_chk_warn, (void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream), __fread_chk) __wur __warnattr ("fread called with bigger size * nmemb than length " "of destination buffer"); __fortify_function __wur size_t fread (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) { if (__bos0 (__ptr) != (size_t) -1) { if (!__builtin_constant_p (__size) || !__builtin_constant_p (__n) || (__size | __n) >= (((size_t) 1) << (8 * sizeof (size_t) / 2))) return __fread_chk (__ptr, __bos0 (__ptr), __size, __n, __stream); if (__size * __n > __bos0 (__ptr)) return __fread_chk_warn (__ptr, __bos0 (__ptr), __size, __n, __stream); } return __fread_alias (__ptr, __size, __n, __stream); } #ifdef __USE_GNU extern char *__fgets_unlocked_chk (char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __wur; extern char *__REDIRECT (__fgets_unlocked_alias, (char *__restrict __s, int __n, FILE *__restrict __stream), fgets_unlocked) __wur; extern char *__REDIRECT (__fgets_unlocked_chk_warn, (char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream), __fgets_unlocked_chk) __wur __warnattr ("fgets_unlocked called with bigger size than length " "of destination buffer"); __fortify_function __wur char * fgets_unlocked (char *__restrict __s, int __n, FILE *__restrict __stream) { if (__bos (__s) != (size_t) -1) { if (!__builtin_constant_p (__n) || __n <= 0) return __fgets_unlocked_chk (__s, __bos (__s), __n, __stream); if ((size_t) __n > __bos (__s)) return __fgets_unlocked_chk_warn (__s, __bos (__s), __n, __stream); } return __fgets_unlocked_alias (__s, __n, __stream); } #endif #ifdef __USE_MISC # undef fread_unlocked extern size_t __fread_unlocked_chk (void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __wur; extern size_t __REDIRECT (__fread_unlocked_alias, (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream), fread_unlocked) __wur; extern size_t __REDIRECT (__fread_unlocked_chk_warn, (void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream), __fread_unlocked_chk) __wur __warnattr ("fread_unlocked called with bigger size * nmemb than " "length of destination buffer"); __fortify_function __wur size_t fread_unlocked (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) { if (__bos0 (__ptr) != (size_t) -1) { if (!__builtin_constant_p (__size) || !__builtin_constant_p (__n) || (__size | __n) >= (((size_t) 1) << (8 * sizeof (size_t) / 2))) return __fread_unlocked_chk (__ptr, __bos0 (__ptr), __size, __n, __stream); if (__size * __n > __bos0 (__ptr)) return __fread_unlocked_chk_warn (__ptr, __bos0 (__ptr), __size, __n, __stream); } # ifdef __USE_EXTERN_INLINES if (__builtin_constant_p (__size) && __builtin_constant_p (__n) && (__size | __n) < (((size_t) 1) << (8 * sizeof (size_t) / 2)) && __size * __n <= 8) { size_t __cnt = __size * __n; char *__cptr = (char *) __ptr; if (__cnt == 0) return 0; for (; __cnt > 0; --__cnt) { int __c = _IO_getc_unlocked (__stream); if (__c == EOF) break; *__cptr++ = __c; } return (__cptr - (char *) __ptr) / __size; } # endif return __fread_unlocked_alias (__ptr, __size, __n, __stream); } #endif
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
types | Folder | 0755 |
|
|
_G_config.h | File | 1.41 KB | 0644 |
|
a.out.h | File | 268 B | 0644 |
|
auxv.h | File | 3.39 KB | 0644 |
|
byteswap-16.h | File | 1.69 KB | 0644 |
|
byteswap.h | File | 5.53 KB | 0644 |
|
cmathcalls.h | File | 4.04 KB | 0644 |
|
confname.h | File | 23.15 KB | 0644 |
|
cpu-set.h | File | 4.41 KB | 0644 |
|
dirent.h | File | 1.69 KB | 0644 |
|
dlfcn.h | File | 2.46 KB | 0644 |
|
elfclass.h | File | 426 B | 0644 |
|
endian.h | File | 176 B | 0644 |
|
environments.h | File | 3.7 KB | 0644 |
|
epoll.h | File | 1.04 KB | 0644 |
|
errno.h | File | 1.39 KB | 0644 |
|
error.h | File | 2.62 KB | 0644 |
|
eventfd.h | File | 1.1 KB | 0644 |
|
fcntl-linux.h | File | 14.02 KB | 0644 |
|
fcntl.h | File | 2.19 KB | 0644 |
|
fcntl2.h | File | 5.44 KB | 0644 |
|
fenv.h | File | 4.5 KB | 0644 |
|
fenvinline.h | File | 190 B | 0644 |
|
floatn-common.h | File | 9.2 KB | 0644 |
|
floatn.h | File | 4.32 KB | 0644 |
|
flt-eval-method.h | File | 1.19 KB | 0644 |
|
fp-fast.h | File | 1.19 KB | 0644 |
|
fp-logb.h | File | 1011 B | 0644 |
|
getopt_core.h | File | 3.58 KB | 0644 |
|
getopt_ext.h | File | 2.97 KB | 0644 |
|
getopt_posix.h | File | 1.77 KB | 0644 |
|
hwcap.h | File | 971 B | 0644 |
|
in.h | File | 9.22 KB | 0644 |
|
initspin.h | File | 25 B | 0644 |
|
inotify.h | File | 1.05 KB | 0644 |
|
ioctl-types.h | File | 2.4 KB | 0644 |
|
ioctls.h | File | 4.37 KB | 0644 |
|
ipc.h | File | 2.02 KB | 0644 |
|
ipctypes.h | File | 1.15 KB | 0644 |
|
iscanonical.h | File | 2.42 KB | 0644 |
|
libc-header-start.h | File | 2.55 KB | 0644 |
|
libio-ldbl.h | File | 1.06 KB | 0644 |
|
libio.h | File | 16.82 KB | 0644 |
|
libm-simd-decl-stubs.h | File | 2.93 KB | 0644 |
|
link.h | File | 4.18 KB | 0644 |
|
local_lim.h | File | 3.11 KB | 0644 |
|
locale.h | File | 1.33 KB | 0644 |
|
long-double.h | File | 923 B | 0644 |
|
math-finite.h | File | 5.25 KB | 0644 |
|
math-vector.h | File | 2.25 KB | 0644 |
|
mathcalls-helper-functions.h | File | 1.72 KB | 0644 |
|
mathcalls.h | File | 12.81 KB | 0644 |
|
mathdef.h | File | 890 B | 0644 |
|
mathinline.h | File | 26.54 KB | 0644 |
|
mman-linux.h | File | 4.69 KB | 0644 |
|
mman-shared.h | File | 2.67 KB | 0644 |
|
mman.h | File | 1.83 KB | 0644 |
|
monetary-ldbl.h | File | 1.02 KB | 0644 |
|
mqueue.h | File | 1.22 KB | 0644 |
|
mqueue2.h | File | 2.1 KB | 0644 |
|
msq.h | File | 2.55 KB | 0644 |
|
netdb.h | File | 1.23 KB | 0644 |
|
param.h | File | 1.4 KB | 0644 |
|
poll.h | File | 2.03 KB | 0644 |
|
poll2.h | File | 2.87 KB | 0644 |
|
posix1_lim.h | File | 4.81 KB | 0644 |
|
posix2_lim.h | File | 2.8 KB | 0644 |
|
posix_opt.h | File | 5.57 KB | 0644 |
|
printf-ldbl.h | File | 991 B | 0644 |
|
pthreadtypes-arch.h | File | 3.21 KB | 0644 |
|
pthreadtypes.h | File | 3 KB | 0644 |
|
ptrace-shared.h | File | 2.83 KB | 0644 |
|
resource.h | File | 6.15 KB | 0644 |
|
sched.h | File | 3.72 KB | 0644 |
|
select.h | File | 2.06 KB | 0644 |
|
select2.h | File | 1.4 KB | 0644 |
|
sem.h | File | 2.53 KB | 0644 |
|
semaphore.h | File | 1.21 KB | 0644 |
|
setjmp.h | File | 1.26 KB | 0644 |
|
setjmp2.h | File | 1.66 KB | 0644 |
|
shm.h | File | 3.48 KB | 0644 |
|
sigaction.h | File | 2.8 KB | 0644 |
|
sigcontext.h | File | 4.16 KB | 0644 |
|
sigevent-consts.h | File | 1.44 KB | 0644 |
|
siginfo-arch.h | File | 729 B | 0644 |
|
siginfo-consts-arch.h | File | 204 B | 0644 |
|
siginfo-consts.h | File | 5.83 KB | 0644 |
|
signalfd.h | File | 1.04 KB | 0644 |
|
signum-generic.h | File | 4.24 KB | 0644 |
|
signum.h | File | 1.59 KB | 0644 |
|
sigstack.h | File | 1.14 KB | 0644 |
|
sigthread.h | File | 1.65 KB | 0644 |
|
sockaddr.h | File | 1.48 KB | 0644 |
|
socket.h | File | 13.99 KB | 0644 |
|
socket2.h | File | 2.95 KB | 0644 |
|
socket_type.h | File | 2.16 KB | 0644 |
|
ss_flags.h | File | 1.16 KB | 0644 |
|
stab.def | File | 8.83 KB | 0644 |
|
stat.h | File | 7.44 KB | 0644 |
|
statfs.h | File | 1.87 KB | 0644 |
|
statvfs.h | File | 3.34 KB | 0644 |
|
stdint-intn.h | File | 1.01 KB | 0644 |
|
stdint-uintn.h | File | 1.02 KB | 0644 |
|
stdio-ldbl.h | File | 2.94 KB | 0644 |
|
stdio.h | File | 5.36 KB | 0644 |
|
stdio2.h | File | 12.25 KB | 0644 |
|
stdio_lim.h | File | 1.18 KB | 0644 |
|
stdlib-bsearch.h | File | 1.34 KB | 0644 |
|
stdlib-float.h | File | 1.09 KB | 0644 |
|
stdlib-ldbl.h | File | 1.34 KB | 0644 |
|
stdlib.h | File | 5.53 KB | 0644 |
|
string_fortified.h | File | 4.21 KB | 0644 |
|
strings_fortified.h | File | 1.18 KB | 0644 |
|
stropts.h | File | 8.25 KB | 0644 |
|
sys_errlist.h | File | 1.19 KB | 0644 |
|
syscall.h | File | 39.59 KB | 0644 |
|
sysctl.h | File | 898 B | 0644 |
|
syslog-ldbl.h | File | 1.18 KB | 0644 |
|
syslog-path.h | File | 1.04 KB | 0644 |
|
syslog.h | File | 1.64 KB | 0644 |
|
sysmacros.h | File | 2.88 KB | 0644 |
|
termios.h | File | 5.24 KB | 0644 |
|
thread-shared-types.h | File | 6.56 KB | 0644 |
|
time.h | File | 2.93 KB | 0644 |
|
timerfd.h | File | 1.08 KB | 0644 |
|
timex.h | File | 4.49 KB | 0644 |
|
types.h | File | 7.8 KB | 0644 |
|
typesizes.h | File | 3.32 KB | 0644 |
|
uintn-identity.h | File | 1.5 KB | 0644 |
|
uio-ext.h | File | 1.88 KB | 0644 |
|
uio_lim.h | File | 1.35 KB | 0644 |
|
unistd.h | File | 13 KB | 0644 |
|
ustat.h | File | 1.06 KB | 0644 |
|
utmp.h | File | 3.96 KB | 0644 |
|
utmpx.h | File | 3.38 KB | 0644 |
|
utsname.h | File | 1.18 KB | 0644 |
|
waitflags.h | File | 2.17 KB | 0644 |
|
waitstatus.h | File | 2.23 KB | 0644 |
|
wchar-ldbl.h | File | 2.37 KB | 0644 |
|
wchar.h | File | 1.86 KB | 0644 |
|
wchar2.h | File | 20.02 KB | 0644 |
|
wctype-wchar.h | File | 6.15 KB | 0644 |
|
wordsize.h | File | 442 B | 0644 |
|
xopen_lim.h | File | 3.77 KB | 0644 |
|
xtitypes.h | File | 1.19 KB | 0644 |
|