LCOV - code coverage report
Current view: top level - /usr/include - stdlib.h (source / functions) Coverage Total Hit
Test: artdaq.info.cleaned Lines: 0.0 % 2 0
Test Date: 2026-10-29 00:35:58 Functions: - 0 0

            Line data    Source code
       1              : /* Copyright (C) 1991-2021 Free Software Foundation, Inc.
       2              :    This file is part of the GNU C Library.
       3              : 
       4              :    The GNU C Library is free software; you can redistribute it and/or
       5              :    modify it under the terms of the GNU Lesser General Public
       6              :    License as published by the Free Software Foundation; either
       7              :    version 2.1 of the License, or (at your option) any later version.
       8              : 
       9              :    The GNU C Library is distributed in the hope that it will be useful,
      10              :    but WITHOUT ANY WARRANTY; without even the implied warranty of
      11              :    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      12              :    Lesser General Public License for more details.
      13              : 
      14              :    You should have received a copy of the GNU Lesser General Public
      15              :    License along with the GNU C Library; if not, see
      16              :    <https://www.gnu.org/licenses/>.  */
      17              : 
      18              : /*
      19              :  *      ISO C99 Standard: 7.20 General utilities        <stdlib.h>
      20              :  */
      21              : 
      22              : #ifndef _STDLIB_H
      23              : 
      24              : #define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION
      25              : #include <bits/libc-header-start.h>
      26              : 
      27              : /* Get size_t, wchar_t and NULL from <stddef.h>.  */
      28              : #define __need_size_t
      29              : #define __need_wchar_t
      30              : #define __need_NULL
      31              : #include <stddef.h>
      32              : 
      33              : __BEGIN_DECLS
      34              : 
      35              : #define _STDLIB_H       1
      36              : 
      37              : #if (defined __USE_XOPEN || defined __USE_XOPEN2K8) && !defined _SYS_WAIT_H
      38              : /* XPG requires a few symbols from <sys/wait.h> being defined.  */
      39              : # include <bits/waitflags.h>
      40              : # include <bits/waitstatus.h>
      41              : 
      42              : /* Define the macros <sys/wait.h> also would define this way.  */
      43              : # define WEXITSTATUS(status)    __WEXITSTATUS (status)
      44              : # define WTERMSIG(status)       __WTERMSIG (status)
      45              : # define WSTOPSIG(status)       __WSTOPSIG (status)
      46              : # define WIFEXITED(status)      __WIFEXITED (status)
      47              : # define WIFSIGNALED(status)    __WIFSIGNALED (status)
      48              : # define WIFSTOPPED(status)     __WIFSTOPPED (status)
      49              : # ifdef __WIFCONTINUED
      50              : #  define WIFCONTINUED(status)  __WIFCONTINUED (status)
      51              : # endif
      52              : #endif  /* X/Open or XPG7 and <sys/wait.h> not included.  */
      53              : 
      54              : /* _FloatN API tests for enablement.  */
      55              : #include <bits/floatn.h>
      56              : 
      57              : /* Returned by `div'.  */
      58              : typedef struct
      59              :   {
      60              :     int quot;                   /* Quotient.  */
      61              :     int rem;                    /* Remainder.  */
      62              :   } div_t;
      63              : 
      64              : /* Returned by `ldiv'.  */
      65              : #ifndef __ldiv_t_defined
      66              : typedef struct
      67              :   {
      68              :     long int quot;              /* Quotient.  */
      69              :     long int rem;               /* Remainder.  */
      70              :   } ldiv_t;
      71              : # define __ldiv_t_defined       1
      72              : #endif
      73              : 
      74              : #if defined __USE_ISOC99 && !defined __lldiv_t_defined
      75              : /* Returned by `lldiv'.  */
      76              : __extension__ typedef struct
      77              :   {
      78              :     long long int quot;         /* Quotient.  */
      79              :     long long int rem;          /* Remainder.  */
      80              :   } lldiv_t;
      81              : # define __lldiv_t_defined      1
      82              : #endif
      83              : 
      84              : 
      85              : /* The largest number rand will return (same as INT_MAX).  */
      86              : #define RAND_MAX        2147483647
      87              : 
      88              : 
      89              : /* We define these the same for all machines.
      90              :    Changes from this to the outside world should be done in `_exit'.  */
      91              : #define EXIT_FAILURE    1       /* Failing exit status.  */
      92              : #define EXIT_SUCCESS    0       /* Successful exit status.  */
      93              : 
      94              : 
      95              : /* Maximum length of a multibyte character in the current locale.  */
      96              : #define MB_CUR_MAX      (__ctype_get_mb_cur_max ())
      97              : extern size_t __ctype_get_mb_cur_max (void) __THROW __wur;
      98              : 
      99              : 
     100              : /* Convert a string to a floating-point number.  */
     101              : extern double atof (const char *__nptr)
     102              :      __THROW __attribute_pure__ __nonnull ((1)) __wur;
     103              : /* Convert a string to an integer.  */
     104              : extern int atoi (const char *__nptr)
     105              :      __THROW __attribute_pure__ __nonnull ((1)) __wur;
     106              : /* Convert a string to a long integer.  */
     107              : extern long int atol (const char *__nptr)
     108              :      __THROW __attribute_pure__ __nonnull ((1)) __wur;
     109              : 
     110              : #ifdef __USE_ISOC99
     111              : /* Convert a string to a long long integer.  */
     112              : __extension__ extern long long int atoll (const char *__nptr)
     113              :      __THROW __attribute_pure__ __nonnull ((1)) __wur;
     114              : #endif
     115              : 
     116              : /* Convert a string to a floating-point number.  */
     117              : extern double strtod (const char *__restrict __nptr,
     118              :                       char **__restrict __endptr)
     119              :      __THROW __nonnull ((1));
     120              : 
     121              : #ifdef  __USE_ISOC99
     122              : /* Likewise for `float' and `long double' sizes of floating-point numbers.  */
     123              : extern float strtof (const char *__restrict __nptr,
     124              :                      char **__restrict __endptr) __THROW __nonnull ((1));
     125              : 
     126              : extern long double strtold (const char *__restrict __nptr,
     127              :                             char **__restrict __endptr)
     128              :      __THROW __nonnull ((1));
     129              : #endif
     130              : 
     131              : /* Likewise for '_FloatN' and '_FloatNx'.  */
     132              : 
     133              : #if __HAVE_FLOAT16 && __GLIBC_USE (IEC_60559_TYPES_EXT)
     134              : extern _Float16 strtof16 (const char *__restrict __nptr,
     135              :                           char **__restrict __endptr)
     136              :      __THROW __nonnull ((1));
     137              : #endif
     138              : 
     139              : #if __HAVE_FLOAT32 && __GLIBC_USE (IEC_60559_TYPES_EXT)
     140              : extern _Float32 strtof32 (const char *__restrict __nptr,
     141              :                           char **__restrict __endptr)
     142              :      __THROW __nonnull ((1));
     143              : #endif
     144              : 
     145              : #if __HAVE_FLOAT64 && __GLIBC_USE (IEC_60559_TYPES_EXT)
     146              : extern _Float64 strtof64 (const char *__restrict __nptr,
     147              :                           char **__restrict __endptr)
     148              :      __THROW __nonnull ((1));
     149              : #endif
     150              : 
     151              : #if __HAVE_FLOAT128 && __GLIBC_USE (IEC_60559_TYPES_EXT)
     152              : extern _Float128 strtof128 (const char *__restrict __nptr,
     153              :                             char **__restrict __endptr)
     154              :      __THROW __nonnull ((1));
     155              : #endif
     156              : 
     157              : #if __HAVE_FLOAT32X && __GLIBC_USE (IEC_60559_TYPES_EXT)
     158              : extern _Float32x strtof32x (const char *__restrict __nptr,
     159              :                             char **__restrict __endptr)
     160              :      __THROW __nonnull ((1));
     161              : #endif
     162              : 
     163              : #if __HAVE_FLOAT64X && __GLIBC_USE (IEC_60559_TYPES_EXT)
     164              : extern _Float64x strtof64x (const char *__restrict __nptr,
     165              :                             char **__restrict __endptr)
     166              :      __THROW __nonnull ((1));
     167              : #endif
     168              : 
     169              : #if __HAVE_FLOAT128X && __GLIBC_USE (IEC_60559_TYPES_EXT)
     170              : extern _Float128x strtof128x (const char *__restrict __nptr,
     171              :                               char **__restrict __endptr)
     172              :      __THROW __nonnull ((1));
     173              : #endif
     174              : 
     175              : /* Convert a string to a long integer.  */
     176              : extern long int strtol (const char *__restrict __nptr,
     177              :                         char **__restrict __endptr, int __base)
     178              :      __THROW __nonnull ((1));
     179              : /* Convert a string to an unsigned long integer.  */
     180              : extern unsigned long int strtoul (const char *__restrict __nptr,
     181              :                                   char **__restrict __endptr, int __base)
     182              :      __THROW __nonnull ((1));
     183              : 
     184              : #ifdef __USE_MISC
     185              : /* Convert a string to a quadword integer.  */
     186              : __extension__
     187              : extern long long int strtoq (const char *__restrict __nptr,
     188              :                              char **__restrict __endptr, int __base)
     189              :      __THROW __nonnull ((1));
     190              : /* Convert a string to an unsigned quadword integer.  */
     191              : __extension__
     192              : extern unsigned long long int strtouq (const char *__restrict __nptr,
     193              :                                        char **__restrict __endptr, int __base)
     194              :      __THROW __nonnull ((1));
     195              : #endif /* Use misc.  */
     196              : 
     197              : #ifdef __USE_ISOC99
     198              : /* Convert a string to a quadword integer.  */
     199              : __extension__
     200              : extern long long int strtoll (const char *__restrict __nptr,
     201              :                               char **__restrict __endptr, int __base)
     202              :      __THROW __nonnull ((1));
     203              : /* Convert a string to an unsigned quadword integer.  */
     204              : __extension__
     205              : extern unsigned long long int strtoull (const char *__restrict __nptr,
     206              :                                         char **__restrict __endptr, int __base)
     207              :      __THROW __nonnull ((1));
     208              : #endif /* ISO C99 or use MISC.  */
     209              : 
     210              : /* Convert a floating-point number to a string.  */
     211              : #if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
     212              : extern int strfromd (char *__dest, size_t __size, const char *__format,
     213              :                      double __f)
     214              :      __THROW __nonnull ((3));
     215              : 
     216              : extern int strfromf (char *__dest, size_t __size, const char *__format,
     217              :                      float __f)
     218              :      __THROW __nonnull ((3));
     219              : 
     220              : extern int strfroml (char *__dest, size_t __size, const char *__format,
     221              :                      long double __f)
     222              :      __THROW __nonnull ((3));
     223              : #endif
     224              : 
     225              : #if __HAVE_FLOAT16 && __GLIBC_USE (IEC_60559_TYPES_EXT)
     226              : extern int strfromf16 (char *__dest, size_t __size, const char * __format,
     227              :                        _Float16 __f)
     228              :      __THROW __nonnull ((3));
     229              : #endif
     230              : 
     231              : #if __HAVE_FLOAT32 && __GLIBC_USE (IEC_60559_TYPES_EXT)
     232              : extern int strfromf32 (char *__dest, size_t __size, const char * __format,
     233              :                        _Float32 __f)
     234              :      __THROW __nonnull ((3));
     235              : #endif
     236              : 
     237              : #if __HAVE_FLOAT64 && __GLIBC_USE (IEC_60559_TYPES_EXT)
     238              : extern int strfromf64 (char *__dest, size_t __size, const char * __format,
     239              :                        _Float64 __f)
     240              :      __THROW __nonnull ((3));
     241              : #endif
     242              : 
     243              : #if __HAVE_FLOAT128 && __GLIBC_USE (IEC_60559_TYPES_EXT)
     244              : extern int strfromf128 (char *__dest, size_t __size, const char * __format,
     245              :                         _Float128 __f)
     246              :      __THROW __nonnull ((3));
     247              : #endif
     248              : 
     249              : #if __HAVE_FLOAT32X && __GLIBC_USE (IEC_60559_TYPES_EXT)
     250              : extern int strfromf32x (char *__dest, size_t __size, const char * __format,
     251              :                         _Float32x __f)
     252              :      __THROW __nonnull ((3));
     253              : #endif
     254              : 
     255              : #if __HAVE_FLOAT64X && __GLIBC_USE (IEC_60559_TYPES_EXT)
     256              : extern int strfromf64x (char *__dest, size_t __size, const char * __format,
     257              :                         _Float64x __f)
     258              :      __THROW __nonnull ((3));
     259              : #endif
     260              : 
     261              : #if __HAVE_FLOAT128X && __GLIBC_USE (IEC_60559_TYPES_EXT)
     262              : extern int strfromf128x (char *__dest, size_t __size, const char * __format,
     263              :                          _Float128x __f)
     264              :      __THROW __nonnull ((3));
     265              : #endif
     266              : 
     267              : 
     268              : #ifdef __USE_GNU
     269              : /* Parallel versions of the functions above which take the locale to
     270              :    use as an additional parameter.  These are GNU extensions inspired
     271              :    by the POSIX.1-2008 extended locale API.  */
     272              : # include <bits/types/locale_t.h>
     273              : 
     274              : extern long int strtol_l (const char *__restrict __nptr,
     275              :                           char **__restrict __endptr, int __base,
     276              :                           locale_t __loc) __THROW __nonnull ((1, 4));
     277              : 
     278              : extern unsigned long int strtoul_l (const char *__restrict __nptr,
     279              :                                     char **__restrict __endptr,
     280              :                                     int __base, locale_t __loc)
     281              :      __THROW __nonnull ((1, 4));
     282              : 
     283              : __extension__
     284              : extern long long int strtoll_l (const char *__restrict __nptr,
     285              :                                 char **__restrict __endptr, int __base,
     286              :                                 locale_t __loc)
     287              :      __THROW __nonnull ((1, 4));
     288              : 
     289              : __extension__
     290              : extern unsigned long long int strtoull_l (const char *__restrict __nptr,
     291              :                                           char **__restrict __endptr,
     292              :                                           int __base, locale_t __loc)
     293              :      __THROW __nonnull ((1, 4));
     294              : 
     295              : extern double strtod_l (const char *__restrict __nptr,
     296              :                         char **__restrict __endptr, locale_t __loc)
     297              :      __THROW __nonnull ((1, 3));
     298              : 
     299              : extern float strtof_l (const char *__restrict __nptr,
     300              :                        char **__restrict __endptr, locale_t __loc)
     301              :      __THROW __nonnull ((1, 3));
     302              : 
     303              : extern long double strtold_l (const char *__restrict __nptr,
     304              :                               char **__restrict __endptr,
     305              :                               locale_t __loc)
     306              :      __THROW __nonnull ((1, 3));
     307              : 
     308              : # if __HAVE_FLOAT16
     309              : extern _Float16 strtof16_l (const char *__restrict __nptr,
     310              :                             char **__restrict __endptr,
     311              :                             locale_t __loc)
     312              :      __THROW __nonnull ((1, 3));
     313              : # endif
     314              : 
     315              : # if __HAVE_FLOAT32
     316              : extern _Float32 strtof32_l (const char *__restrict __nptr,
     317              :                             char **__restrict __endptr,
     318              :                             locale_t __loc)
     319              :      __THROW __nonnull ((1, 3));
     320              : # endif
     321              : 
     322              : # if __HAVE_FLOAT64
     323              : extern _Float64 strtof64_l (const char *__restrict __nptr,
     324              :                             char **__restrict __endptr,
     325              :                             locale_t __loc)
     326              :      __THROW __nonnull ((1, 3));
     327              : # endif
     328              : 
     329              : # if __HAVE_FLOAT128
     330              : extern _Float128 strtof128_l (const char *__restrict __nptr,
     331              :                               char **__restrict __endptr,
     332              :                               locale_t __loc)
     333              :      __THROW __nonnull ((1, 3));
     334              : # endif
     335              : 
     336              : # if __HAVE_FLOAT32X
     337              : extern _Float32x strtof32x_l (const char *__restrict __nptr,
     338              :                               char **__restrict __endptr,
     339              :                               locale_t __loc)
     340              :      __THROW __nonnull ((1, 3));
     341              : # endif
     342              : 
     343              : # if __HAVE_FLOAT64X
     344              : extern _Float64x strtof64x_l (const char *__restrict __nptr,
     345              :                               char **__restrict __endptr,
     346              :                               locale_t __loc)
     347              :      __THROW __nonnull ((1, 3));
     348              : # endif
     349              : 
     350              : # if __HAVE_FLOAT128X
     351              : extern _Float128x strtof128x_l (const char *__restrict __nptr,
     352              :                                 char **__restrict __endptr,
     353              :                                 locale_t __loc)
     354              :      __THROW __nonnull ((1, 3));
     355              : # endif
     356              : #endif /* GNU */
     357              : 
     358              : 
     359              : #ifdef __USE_EXTERN_INLINES
     360              : __extern_inline int
     361            0 : __NTH (atoi (const char *__nptr))
     362              : {
     363            0 :   return (int) strtol (__nptr, (char **) NULL, 10);
     364              : }
     365              : __extern_inline long int
     366              : __NTH (atol (const char *__nptr))
     367              : {
     368              :   return strtol (__nptr, (char **) NULL, 10);
     369              : }
     370              : 
     371              : # ifdef __USE_ISOC99
     372              : __extension__ __extern_inline long long int
     373              : __NTH (atoll (const char *__nptr))
     374              : {
     375              :   return strtoll (__nptr, (char **) NULL, 10);
     376              : }
     377              : # endif
     378              : #endif /* Optimizing and Inlining.  */
     379              : 
     380              : 
     381              : #if defined __USE_MISC || defined __USE_XOPEN_EXTENDED
     382              : /* Convert N to base 64 using the digits "./0-9A-Za-z", least-significant
     383              :    digit first.  Returns a pointer to static storage overwritten by the
     384              :    next call.  */
     385              : extern char *l64a (long int __n) __THROW __wur;
     386              : 
     387              : /* Read a number from a string S in base 64 as above.  */
     388              : extern long int a64l (const char *__s)
     389              :      __THROW __attribute_pure__ __nonnull ((1)) __wur;
     390              : 
     391              : #endif  /* Use misc || extended X/Open.  */
     392              : 
     393              : #if defined __USE_MISC || defined __USE_XOPEN_EXTENDED
     394              : # include <sys/types.h>   /* we need int32_t... */
     395              : 
     396              : /* These are the functions that actually do things.  The `random', `srandom',
     397              :    `initstate' and `setstate' functions are those from BSD Unices.
     398              :    The `rand' and `srand' functions are required by the ANSI standard.
     399              :    We provide both interfaces to the same random number generator.  */
     400              : /* Return a random long integer between 0 and 2^31-1 inclusive.  */
     401              : extern long int random (void) __THROW;
     402              : 
     403              : /* Seed the random number generator with the given number.  */
     404              : extern void srandom (unsigned int __seed) __THROW;
     405              : 
     406              : /* Initialize the random number generator to use state buffer STATEBUF,
     407              :    of length STATELEN, and seed it with SEED.  Optimal lengths are 8, 16,
     408              :    32, 64, 128 and 256, the bigger the better; values less than 8 will
     409              :    cause an error and values greater than 256 will be rounded down.  */
     410              : extern char *initstate (unsigned int __seed, char *__statebuf,
     411              :                         size_t __statelen) __THROW __nonnull ((2));
     412              : 
     413              : /* Switch the random number generator to state buffer STATEBUF,
     414              :    which should have been previously initialized by `initstate'.  */
     415              : extern char *setstate (char *__statebuf) __THROW __nonnull ((1));
     416              : 
     417              : 
     418              : # ifdef __USE_MISC
     419              : /* Reentrant versions of the `random' family of functions.
     420              :    These functions all use the following data structure to contain
     421              :    state, rather than global state variables.  */
     422              : 
     423              : struct random_data
     424              :   {
     425              :     int32_t *fptr;              /* Front pointer.  */
     426              :     int32_t *rptr;              /* Rear pointer.  */
     427              :     int32_t *state;             /* Array of state values.  */
     428              :     int rand_type;              /* Type of random number generator.  */
     429              :     int rand_deg;               /* Degree of random number generator.  */
     430              :     int rand_sep;               /* Distance between front and rear.  */
     431              :     int32_t *end_ptr;           /* Pointer behind state table.  */
     432              :   };
     433              : 
     434              : extern int random_r (struct random_data *__restrict __buf,
     435              :                      int32_t *__restrict __result) __THROW __nonnull ((1, 2));
     436              : 
     437              : extern int srandom_r (unsigned int __seed, struct random_data *__buf)
     438              :      __THROW __nonnull ((2));
     439              : 
     440              : extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
     441              :                         size_t __statelen,
     442              :                         struct random_data *__restrict __buf)
     443              :      __THROW __nonnull ((2, 4));
     444              : 
     445              : extern int setstate_r (char *__restrict __statebuf,
     446              :                        struct random_data *__restrict __buf)
     447              :      __THROW __nonnull ((1, 2));
     448              : # endif /* Use misc.  */
     449              : #endif  /* Use extended X/Open || misc. */
     450              : 
     451              : 
     452              : /* Return a random integer between 0 and RAND_MAX inclusive.  */
     453              : extern int rand (void) __THROW;
     454              : /* Seed the random number generator with the given number.  */
     455              : extern void srand (unsigned int __seed) __THROW;
     456              : 
     457              : #ifdef __USE_POSIX199506
     458              : /* Reentrant interface according to POSIX.1.  */
     459              : extern int rand_r (unsigned int *__seed) __THROW;
     460              : #endif
     461              : 
     462              : 
     463              : #if defined __USE_MISC || defined __USE_XOPEN
     464              : /* System V style 48-bit random number generator functions.  */
     465              : 
     466              : /* Return non-negative, double-precision floating-point value in [0.0,1.0).  */
     467              : extern double drand48 (void) __THROW;
     468              : extern double erand48 (unsigned short int __xsubi[3]) __THROW __nonnull ((1));
     469              : 
     470              : /* Return non-negative, long integer in [0,2^31).  */
     471              : extern long int lrand48 (void) __THROW;
     472              : extern long int nrand48 (unsigned short int __xsubi[3])
     473              :      __THROW __nonnull ((1));
     474              : 
     475              : /* Return signed, long integers in [-2^31,2^31).  */
     476              : extern long int mrand48 (void) __THROW;
     477              : extern long int jrand48 (unsigned short int __xsubi[3])
     478              :      __THROW __nonnull ((1));
     479              : 
     480              : /* Seed random number generator.  */
     481              : extern void srand48 (long int __seedval) __THROW;
     482              : extern unsigned short int *seed48 (unsigned short int __seed16v[3])
     483              :      __THROW __nonnull ((1));
     484              : extern void lcong48 (unsigned short int __param[7]) __THROW __nonnull ((1));
     485              : 
     486              : # ifdef __USE_MISC
     487              : /* Data structure for communication with thread safe versions.  This
     488              :    type is to be regarded as opaque.  It's only exported because users
     489              :    have to allocate objects of this type.  */
     490              : struct drand48_data
     491              :   {
     492              :     unsigned short int __x[3];  /* Current state.  */
     493              :     unsigned short int __old_x[3]; /* Old state.  */
     494              :     unsigned short int __c;     /* Additive const. in congruential formula.  */
     495              :     unsigned short int __init;  /* Flag for initializing.  */
     496              :     __extension__ unsigned long long int __a;   /* Factor in congruential
     497              :                                                    formula.  */
     498              :   };
     499              : 
     500              : /* Return non-negative, double-precision floating-point value in [0.0,1.0).  */
     501              : extern int drand48_r (struct drand48_data *__restrict __buffer,
     502              :                       double *__restrict __result) __THROW __nonnull ((1, 2));
     503              : extern int erand48_r (unsigned short int __xsubi[3],
     504              :                       struct drand48_data *__restrict __buffer,
     505              :                       double *__restrict __result) __THROW __nonnull ((1, 2));
     506              : 
     507              : /* Return non-negative, long integer in [0,2^31).  */
     508              : extern int lrand48_r (struct drand48_data *__restrict __buffer,
     509              :                       long int *__restrict __result)
     510              :      __THROW __nonnull ((1, 2));
     511              : extern int nrand48_r (unsigned short int __xsubi[3],
     512              :                       struct drand48_data *__restrict __buffer,
     513              :                       long int *__restrict __result)
     514              :      __THROW __nonnull ((1, 2));
     515              : 
     516              : /* Return signed, long integers in [-2^31,2^31).  */
     517              : extern int mrand48_r (struct drand48_data *__restrict __buffer,
     518              :                       long int *__restrict __result)
     519              :      __THROW __nonnull ((1, 2));
     520              : extern int jrand48_r (unsigned short int __xsubi[3],
     521              :                       struct drand48_data *__restrict __buffer,
     522              :                       long int *__restrict __result)
     523              :      __THROW __nonnull ((1, 2));
     524              : 
     525              : /* Seed random number generator.  */
     526              : extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
     527              :      __THROW __nonnull ((2));
     528              : 
     529              : extern int seed48_r (unsigned short int __seed16v[3],
     530              :                      struct drand48_data *__buffer) __THROW __nonnull ((1, 2));
     531              : 
     532              : extern int lcong48_r (unsigned short int __param[7],
     533              :                       struct drand48_data *__buffer)
     534              :      __THROW __nonnull ((1, 2));
     535              : # endif /* Use misc.  */
     536              : #endif  /* Use misc or X/Open.  */
     537              : 
     538              : /* Allocate SIZE bytes of memory.  */
     539              : extern void *malloc (size_t __size) __THROW __attribute_malloc__
     540              :      __attribute_alloc_size__ ((1)) __wur;
     541              : /* Allocate NMEMB elements of SIZE bytes each, all initialized to 0.  */
     542              : extern void *calloc (size_t __nmemb, size_t __size)
     543              :      __THROW __attribute_malloc__ __attribute_alloc_size__ ((1, 2)) __wur;
     544              : 
     545              : /* Re-allocate the previously allocated block
     546              :    in PTR, making the new block SIZE bytes long.  */
     547              : /* __attribute_malloc__ is not used, because if realloc returns
     548              :    the same pointer that was passed to it, aliasing needs to be allowed
     549              :    between objects pointed by the old and new pointers.  */
     550              : extern void *realloc (void *__ptr, size_t __size)
     551              :      __THROW __attribute_warn_unused_result__ __attribute_alloc_size__ ((2));
     552              : 
     553              : /* Free a block allocated by `malloc', `realloc' or `calloc'.  */
     554              : extern void free (void *__ptr) __THROW;
     555              : 
     556              : #ifdef __USE_MISC
     557              : /* Re-allocate the previously allocated block in PTR, making the new
     558              :    block large enough for NMEMB elements of SIZE bytes each.  */
     559              : /* __attribute_malloc__ is not used, because if reallocarray returns
     560              :    the same pointer that was passed to it, aliasing needs to be allowed
     561              :    between objects pointed by the old and new pointers.  */
     562              : extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size)
     563              :      __THROW __attribute_warn_unused_result__
     564              :      __attribute_alloc_size__ ((2, 3))
     565              :     __attr_dealloc_free;
     566              : 
     567              : /* Add reallocarray as its own deallocator.  */
     568              : extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size)
     569              :      __THROW __attr_dealloc (reallocarray, 1);
     570              : #endif
     571              : 
     572              : #ifdef __USE_MISC
     573              : # include <alloca.h>
     574              : #endif /* Use misc.  */
     575              : 
     576              : #if (defined __USE_XOPEN_EXTENDED && !defined __USE_XOPEN2K) \
     577              :     || defined __USE_MISC
     578              : /* Allocate SIZE bytes on a page boundary.  The storage cannot be freed.  */
     579              : extern void *valloc (size_t __size) __THROW __attribute_malloc__
     580              :      __attribute_alloc_size__ ((1)) __wur;
     581              : #endif
     582              : 
     583              : #ifdef __USE_XOPEN2K
     584              : /* Allocate memory of SIZE bytes with an alignment of ALIGNMENT.  */
     585              : extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
     586              :      __THROW __nonnull ((1)) __wur;
     587              : #endif
     588              : 
     589              : #ifdef __USE_ISOC11
     590              : /* ISO C variant of aligned allocation.  */
     591              : extern void *aligned_alloc (size_t __alignment, size_t __size)
     592              :      __THROW __attribute_malloc__ __attribute_alloc_size__ ((2)) __wur;
     593              : #endif
     594              : 
     595              : /* Abort execution and generate a core-dump.  */
     596              : extern void abort (void) __THROW __attribute__ ((__noreturn__));
     597              : 
     598              : 
     599              : /* Register a function to be called when `exit' is called.  */
     600              : extern int atexit (void (*__func) (void)) __THROW __nonnull ((1));
     601              : 
     602              : #if defined __USE_ISOC11 || defined __USE_ISOCXX11
     603              : /* Register a function to be called when `quick_exit' is called.  */
     604              : # ifdef __cplusplus
     605              : extern "C++" int at_quick_exit (void (*__func) (void))
     606              :      __THROW __asm ("at_quick_exit") __nonnull ((1));
     607              : # else
     608              : extern int at_quick_exit (void (*__func) (void)) __THROW __nonnull ((1));
     609              : # endif
     610              : #endif
     611              : 
     612              : #ifdef  __USE_MISC
     613              : /* Register a function to be called with the status
     614              :    given to `exit' and the given argument.  */
     615              : extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
     616              :      __THROW __nonnull ((1));
     617              : #endif
     618              : 
     619              : /* Call all functions registered with `atexit' and `on_exit',
     620              :    in the reverse of the order in which they were registered,
     621              :    perform stdio cleanup, and terminate program execution with STATUS.  */
     622              : extern void exit (int __status) __THROW __attribute__ ((__noreturn__));
     623              : 
     624              : #if defined __USE_ISOC11 || defined __USE_ISOCXX11
     625              : /* Call all functions registered with `at_quick_exit' in the reverse
     626              :    of the order in which they were registered and terminate program
     627              :    execution with STATUS.  */
     628              : extern void quick_exit (int __status) __THROW __attribute__ ((__noreturn__));
     629              : #endif
     630              : 
     631              : #ifdef __USE_ISOC99
     632              : /* Terminate the program with STATUS without calling any of the
     633              :    functions registered with `atexit' or `on_exit'.  */
     634              : extern void _Exit (int __status) __THROW __attribute__ ((__noreturn__));
     635              : #endif
     636              : 
     637              : 
     638              : /* Return the value of envariable NAME, or NULL if it doesn't exist.  */
     639              : extern char *getenv (const char *__name) __THROW __nonnull ((1)) __wur;
     640              : 
     641              : #ifdef __USE_GNU
     642              : /* This function is similar to the above but returns NULL if the
     643              :    programs is running with SUID or SGID enabled.  */
     644              : extern char *secure_getenv (const char *__name)
     645              :      __THROW __nonnull ((1)) __wur;
     646              : #endif
     647              : 
     648              : #if defined __USE_MISC || defined __USE_XOPEN
     649              : /* The SVID says this is in <stdio.h>, but this seems a better place.     */
     650              : /* Put STRING, which is of the form "NAME=VALUE", in the environment.
     651              :    If there is no `=', remove NAME from the environment.  */
     652              : extern int putenv (char *__string) __THROW __nonnull ((1));
     653              : #endif
     654              : 
     655              : #ifdef __USE_XOPEN2K
     656              : /* Set NAME to VALUE in the environment.
     657              :    If REPLACE is nonzero, overwrite an existing value.  */
     658              : extern int setenv (const char *__name, const char *__value, int __replace)
     659              :      __THROW __nonnull ((2));
     660              : 
     661              : /* Remove the variable NAME from the environment.  */
     662              : extern int unsetenv (const char *__name) __THROW __nonnull ((1));
     663              : #endif
     664              : 
     665              : #ifdef  __USE_MISC
     666              : /* The `clearenv' was planned to be added to POSIX.1 but probably
     667              :    never made it.  Nevertheless the POSIX.9 standard (POSIX bindings
     668              :    for Fortran 77) requires this function.  */
     669              : extern int clearenv (void) __THROW;
     670              : #endif
     671              : 
     672              : 
     673              : #if defined __USE_MISC \
     674              :     || (defined __USE_XOPEN_EXTENDED && !defined __USE_XOPEN2K8)
     675              : /* Generate a unique temporary file name from TEMPLATE.
     676              :    The last six characters of TEMPLATE must be "XXXXXX";
     677              :    they are replaced with a string that makes the file name unique.
     678              :    Always returns TEMPLATE, it's either a temporary file name or a null
     679              :    string if it cannot get a unique file name.  */
     680              : extern char *mktemp (char *__template) __THROW __nonnull ((1));
     681              : #endif
     682              : 
     683              : #if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8
     684              : /* Generate a unique temporary file name from TEMPLATE.
     685              :    The last six characters of TEMPLATE must be "XXXXXX";
     686              :    they are replaced with a string that makes the filename unique.
     687              :    Returns a file descriptor open on the file for reading and writing,
     688              :    or -1 if it cannot create a uniquely-named file.
     689              : 
     690              :    This function is a possible cancellation point and therefore not
     691              :    marked with __THROW.  */
     692              : # ifndef __USE_FILE_OFFSET64
     693              : extern int mkstemp (char *__template) __nonnull ((1)) __wur;
     694              : # else
     695              : #  ifdef __REDIRECT
     696              : extern int __REDIRECT (mkstemp, (char *__template), mkstemp64)
     697              :      __nonnull ((1)) __wur;
     698              : #  else
     699              : #   define mkstemp mkstemp64
     700              : #  endif
     701              : # endif
     702              : # ifdef __USE_LARGEFILE64
     703              : extern int mkstemp64 (char *__template) __nonnull ((1)) __wur;
     704              : # endif
     705              : #endif
     706              : 
     707              : #ifdef __USE_MISC
     708              : /* Similar to mkstemp, but the template can have a suffix after the
     709              :    XXXXXX.  The length of the suffix is specified in the second
     710              :    parameter.
     711              : 
     712              :    This function is a possible cancellation point and therefore not
     713              :    marked with __THROW.  */
     714              : # ifndef __USE_FILE_OFFSET64
     715              : extern int mkstemps (char *__template, int __suffixlen) __nonnull ((1)) __wur;
     716              : # else
     717              : #  ifdef __REDIRECT
     718              : extern int __REDIRECT (mkstemps, (char *__template, int __suffixlen),
     719              :                        mkstemps64) __nonnull ((1)) __wur;
     720              : #  else
     721              : #   define mkstemps mkstemps64
     722              : #  endif
     723              : # endif
     724              : # ifdef __USE_LARGEFILE64
     725              : extern int mkstemps64 (char *__template, int __suffixlen)
     726              :      __nonnull ((1)) __wur;
     727              : # endif
     728              : #endif
     729              : 
     730              : #ifdef __USE_XOPEN2K8
     731              : /* Create a unique temporary directory from TEMPLATE.
     732              :    The last six characters of TEMPLATE must be "XXXXXX";
     733              :    they are replaced with a string that makes the directory name unique.
     734              :    Returns TEMPLATE, or a null pointer if it cannot get a unique name.
     735              :    The directory is created mode 700.  */
     736              : extern char *mkdtemp (char *__template) __THROW __nonnull ((1)) __wur;
     737              : #endif
     738              : 
     739              : #ifdef __USE_GNU
     740              : /* Generate a unique temporary file name from TEMPLATE similar to
     741              :    mkstemp.  But allow the caller to pass additional flags which are
     742              :    used in the open call to create the file..
     743              : 
     744              :    This function is a possible cancellation point and therefore not
     745              :    marked with __THROW.  */
     746              : # ifndef __USE_FILE_OFFSET64
     747              : extern int mkostemp (char *__template, int __flags) __nonnull ((1)) __wur;
     748              : # else
     749              : #  ifdef __REDIRECT
     750              : extern int __REDIRECT (mkostemp, (char *__template, int __flags), mkostemp64)
     751              :      __nonnull ((1)) __wur;
     752              : #  else
     753              : #   define mkostemp mkostemp64
     754              : #  endif
     755              : # endif
     756              : # ifdef __USE_LARGEFILE64
     757              : extern int mkostemp64 (char *__template, int __flags) __nonnull ((1)) __wur;
     758              : # endif
     759              : 
     760              : /* Similar to mkostemp, but the template can have a suffix after the
     761              :    XXXXXX.  The length of the suffix is specified in the second
     762              :    parameter.
     763              : 
     764              :    This function is a possible cancellation point and therefore not
     765              :    marked with __THROW.  */
     766              : # ifndef __USE_FILE_OFFSET64
     767              : extern int mkostemps (char *__template, int __suffixlen, int __flags)
     768              :      __nonnull ((1)) __wur;
     769              : # else
     770              : #  ifdef __REDIRECT
     771              : extern int __REDIRECT (mkostemps, (char *__template, int __suffixlen,
     772              :                                    int __flags), mkostemps64)
     773              :      __nonnull ((1)) __wur;
     774              : #  else
     775              : #   define mkostemps mkostemps64
     776              : #  endif
     777              : # endif
     778              : # ifdef __USE_LARGEFILE64
     779              : extern int mkostemps64 (char *__template, int __suffixlen, int __flags)
     780              :      __nonnull ((1)) __wur;
     781              : # endif
     782              : #endif
     783              : 
     784              : 
     785              : /* Execute the given line as a shell command.
     786              : 
     787              :    This function is a cancellation point and therefore not marked with
     788              :    __THROW.  */
     789              : extern int system (const char *__command) __wur;
     790              : 
     791              : 
     792              : #ifdef  __USE_GNU
     793              : /* Return a malloc'd string containing the canonical absolute name of the
     794              :    existing named file.  */
     795              : extern char *canonicalize_file_name (const char *__name)
     796              :      __THROW __nonnull ((1)) __attribute_malloc__
     797              :      __attr_dealloc_free __wur;
     798              : #endif
     799              : 
     800              : #if defined __USE_MISC || defined __USE_XOPEN_EXTENDED
     801              : /* Return the canonical absolute name of file NAME.  If RESOLVED is
     802              :    null, the result is malloc'd; otherwise, if the canonical name is
     803              :    PATH_MAX chars or more, returns null with `errno' set to
     804              :    ENAMETOOLONG; if the name fits in fewer than PATH_MAX chars,
     805              :    returns the name in RESOLVED.  */
     806              : extern char *realpath (const char *__restrict __name,
     807              :                        char *__restrict __resolved) __THROW __wur;
     808              : #endif
     809              : 
     810              : 
     811              : /* Shorthand for type of comparison functions.  */
     812              : #ifndef __COMPAR_FN_T
     813              : # define __COMPAR_FN_T
     814              : typedef int (*__compar_fn_t) (const void *, const void *);
     815              : 
     816              : # ifdef __USE_GNU
     817              : typedef __compar_fn_t comparison_fn_t;
     818              : # endif
     819              : #endif
     820              : #ifdef __USE_GNU
     821              : typedef int (*__compar_d_fn_t) (const void *, const void *, void *);
     822              : #endif
     823              : 
     824              : /* Do a binary search for KEY in BASE, which consists of NMEMB elements
     825              :    of SIZE bytes each, using COMPAR to perform the comparisons.  */
     826              : extern void *bsearch (const void *__key, const void *__base,
     827              :                       size_t __nmemb, size_t __size, __compar_fn_t __compar)
     828              :      __nonnull ((1, 2, 5)) __wur;
     829              : 
     830              : #ifdef __USE_EXTERN_INLINES
     831              : # include <bits/stdlib-bsearch.h>
     832              : #endif
     833              : 
     834              : /* Sort NMEMB elements of BASE, of SIZE bytes each,
     835              :    using COMPAR to perform the comparisons.  */
     836              : extern void qsort (void *__base, size_t __nmemb, size_t __size,
     837              :                    __compar_fn_t __compar) __nonnull ((1, 4));
     838              : #ifdef __USE_GNU
     839              : extern void qsort_r (void *__base, size_t __nmemb, size_t __size,
     840              :                      __compar_d_fn_t __compar, void *__arg)
     841              :   __nonnull ((1, 4));
     842              : #endif
     843              : 
     844              : 
     845              : /* Return the absolute value of X.  */
     846              : extern int abs (int __x) __THROW __attribute__ ((__const__)) __wur;
     847              : extern long int labs (long int __x) __THROW __attribute__ ((__const__)) __wur;
     848              : 
     849              : #ifdef __USE_ISOC99
     850              : __extension__ extern long long int llabs (long long int __x)
     851              :      __THROW __attribute__ ((__const__)) __wur;
     852              : #endif
     853              : 
     854              : 
     855              : /* Return the `div_t', `ldiv_t' or `lldiv_t' representation
     856              :    of the value of NUMER over DENOM. */
     857              : /* GCC may have built-ins for these someday.  */
     858              : extern div_t div (int __numer, int __denom)
     859              :      __THROW __attribute__ ((__const__)) __wur;
     860              : extern ldiv_t ldiv (long int __numer, long int __denom)
     861              :      __THROW __attribute__ ((__const__)) __wur;
     862              : 
     863              : #ifdef __USE_ISOC99
     864              : __extension__ extern lldiv_t lldiv (long long int __numer,
     865              :                                     long long int __denom)
     866              :      __THROW __attribute__ ((__const__)) __wur;
     867              : #endif
     868              : 
     869              : 
     870              : #if (defined __USE_XOPEN_EXTENDED && !defined __USE_XOPEN2K8) \
     871              :     || defined __USE_MISC
     872              : /* Convert floating point numbers to strings.  The returned values are
     873              :    valid only until another call to the same function.  */
     874              : 
     875              : /* Convert VALUE to a string with NDIGIT digits and return a pointer to
     876              :    this.  Set *DECPT with the position of the decimal character and *SIGN
     877              :    with the sign of the number.  */
     878              : extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
     879              :                    int *__restrict __sign) __THROW __nonnull ((3, 4)) __wur;
     880              : 
     881              : /* Convert VALUE to a string rounded to NDIGIT decimal digits.  Set *DECPT
     882              :    with the position of the decimal character and *SIGN with the sign of
     883              :    the number.  */
     884              : extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
     885              :                    int *__restrict __sign) __THROW __nonnull ((3, 4)) __wur;
     886              : 
     887              : /* If possible convert VALUE to a string with NDIGIT significant digits.
     888              :    Otherwise use exponential representation.  The resulting string will
     889              :    be written to BUF.  */
     890              : extern char *gcvt (double __value, int __ndigit, char *__buf)
     891              :      __THROW __nonnull ((3)) __wur;
     892              : #endif
     893              : 
     894              : #ifdef __USE_MISC
     895              : /* Long double versions of above functions.  */
     896              : extern char *qecvt (long double __value, int __ndigit,
     897              :                     int *__restrict __decpt, int *__restrict __sign)
     898              :      __THROW __nonnull ((3, 4)) __wur;
     899              : extern char *qfcvt (long double __value, int __ndigit,
     900              :                     int *__restrict __decpt, int *__restrict __sign)
     901              :      __THROW __nonnull ((3, 4)) __wur;
     902              : extern char *qgcvt (long double __value, int __ndigit, char *__buf)
     903              :      __THROW __nonnull ((3)) __wur;
     904              : 
     905              : 
     906              : /* Reentrant version of the functions above which provide their own
     907              :    buffers.  */
     908              : extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
     909              :                    int *__restrict __sign, char *__restrict __buf,
     910              :                    size_t __len) __THROW __nonnull ((3, 4, 5));
     911              : extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
     912              :                    int *__restrict __sign, char *__restrict __buf,
     913              :                    size_t __len) __THROW __nonnull ((3, 4, 5));
     914              : 
     915              : extern int qecvt_r (long double __value, int __ndigit,
     916              :                     int *__restrict __decpt, int *__restrict __sign,
     917              :                     char *__restrict __buf, size_t __len)
     918              :      __THROW __nonnull ((3, 4, 5));
     919              : extern int qfcvt_r (long double __value, int __ndigit,
     920              :                     int *__restrict __decpt, int *__restrict __sign,
     921              :                     char *__restrict __buf, size_t __len)
     922              :      __THROW __nonnull ((3, 4, 5));
     923              : #endif  /* misc */
     924              : 
     925              : 
     926              : /* Return the length of the multibyte character
     927              :    in S, which is no longer than N.  */
     928              : extern int mblen (const char *__s, size_t __n) __THROW;
     929              : /* Return the length of the given multibyte character,
     930              :    putting its `wchar_t' representation in *PWC.  */
     931              : extern int mbtowc (wchar_t *__restrict __pwc,
     932              :                    const char *__restrict __s, size_t __n) __THROW;
     933              : /* Put the multibyte character represented
     934              :    by WCHAR in S, returning its length.  */
     935              : extern int wctomb (char *__s, wchar_t __wchar) __THROW;
     936              : 
     937              : 
     938              : /* Convert a multibyte string to a wide char string.  */
     939              : extern size_t mbstowcs (wchar_t *__restrict  __pwcs,
     940              :                         const char *__restrict __s, size_t __n) __THROW
     941              :     __attr_access ((__read_only__, 2));
     942              : /* Convert a wide char string to multibyte string.  */
     943              : extern size_t wcstombs (char *__restrict __s,
     944              :                         const wchar_t *__restrict __pwcs, size_t __n)
     945              :      __THROW
     946              :   __fortified_attr_access (__write_only__, 1, 3)
     947              :   __attr_access ((__read_only__, 2));
     948              : 
     949              : #ifdef __USE_MISC
     950              : /* Determine whether the string value of RESPONSE matches the affirmation
     951              :    or negative response expression as specified by the LC_MESSAGES category
     952              :    in the program's current locale.  Returns 1 if affirmative, 0 if
     953              :    negative, and -1 if not matching.  */
     954              : extern int rpmatch (const char *__response) __THROW __nonnull ((1)) __wur;
     955              : #endif
     956              : 
     957              : 
     958              : #if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8
     959              : /* Parse comma separated suboption from *OPTIONP and match against
     960              :    strings in TOKENS.  If found return index and set *VALUEP to
     961              :    optional value introduced by an equal sign.  If the suboption is
     962              :    not part of TOKENS return in *VALUEP beginning of unknown
     963              :    suboption.  On exit *OPTIONP is set to the beginning of the next
     964              :    token or at the terminating NUL character.  */
     965              : extern int getsubopt (char **__restrict __optionp,
     966              :                       char *const *__restrict __tokens,
     967              :                       char **__restrict __valuep)
     968              :      __THROW __nonnull ((1, 2, 3)) __wur;
     969              : #endif
     970              : 
     971              : 
     972              : /* X/Open pseudo terminal handling.  */
     973              : 
     974              : #ifdef __USE_XOPEN2KXSI
     975              : /* Return a master pseudo-terminal handle.  */
     976              : extern int posix_openpt (int __oflag) __wur;
     977              : #endif
     978              : 
     979              : #ifdef __USE_XOPEN_EXTENDED
     980              : /* The next four functions all take a master pseudo-tty fd and
     981              :    perform an operation on the associated slave:  */
     982              : 
     983              : /* Chown the slave to the calling user.  */
     984              : extern int grantpt (int __fd) __THROW;
     985              : 
     986              : /* Release an internal lock so the slave can be opened.
     987              :    Call after grantpt().  */
     988              : extern int unlockpt (int __fd) __THROW;
     989              : 
     990              : /* Return the pathname of the pseudo terminal slave associated with
     991              :    the master FD is open on, or NULL on errors.
     992              :    The returned storage is good until the next call to this function.  */
     993              : extern char *ptsname (int __fd) __THROW __wur;
     994              : #endif
     995              : 
     996              : #ifdef __USE_GNU
     997              : /* Store at most BUFLEN characters of the pathname of the slave pseudo
     998              :    terminal associated with the master FD is open on in BUF.
     999              :    Return 0 on success, otherwise an error number.  */
    1000              : extern int ptsname_r (int __fd, char *__buf, size_t __buflen)
    1001              :      __THROW __nonnull ((2)) __fortified_attr_access (__write_only__, 2, 3);
    1002              : 
    1003              : /* Open a master pseudo terminal and return its file descriptor.  */
    1004              : extern int getpt (void);
    1005              : #endif
    1006              : 
    1007              : #ifdef __USE_MISC
    1008              : /* Put the 1 minute, 5 minute and 15 minute load averages into the first
    1009              :    NELEM elements of LOADAVG.  Return the number written (never more than
    1010              :    three, but may be less than NELEM), or -1 if an error occurred.  */
    1011              : extern int getloadavg (double __loadavg[], int __nelem)
    1012              :      __THROW __nonnull ((1));
    1013              : #endif
    1014              : 
    1015              : #if defined __USE_XOPEN_EXTENDED && !defined __USE_XOPEN2K
    1016              : /* Return the index into the active-logins file (utmp) for
    1017              :    the controlling terminal.  */
    1018              : extern int ttyslot (void) __THROW;
    1019              : #endif
    1020              : 
    1021              : #include <bits/stdlib-float.h>
    1022              : 
    1023              : /* Define some macros helping to catch buffer overflows.  */
    1024              : #if __USE_FORTIFY_LEVEL > 0 && defined __fortify_function
    1025              : # include <bits/stdlib.h>
    1026              : #endif
    1027              : 
    1028              : #include <bits/floatn.h>
    1029              : #if defined __LDBL_COMPAT || __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
    1030              : # include <bits/stdlib-ldbl.h>
    1031              : #endif
    1032              : 
    1033              : __END_DECLS
    1034              : 
    1035              : #endif /* stdlib.h  */
        

Generated by: LCOV version 2.0-1