1*fc9238f1Snia /* $NetBSD: stdlib.h,v 1.128 2024/11/02 10:49:10 nia Exp $ */ 24d2cbfceScgd 361f28255Scgd /*- 4b7b7322cSperry * Copyright (c) 1990, 1993 5b7b7322cSperry * The Regents of the University of California. All rights reserved. 661f28255Scgd * 761f28255Scgd * Redistribution and use in source and binary forms, with or without 861f28255Scgd * modification, are permitted provided that the following conditions 961f28255Scgd * are met: 1061f28255Scgd * 1. Redistributions of source code must retain the above copyright 1161f28255Scgd * notice, this list of conditions and the following disclaimer. 1261f28255Scgd * 2. Redistributions in binary form must reproduce the above copyright 1361f28255Scgd * notice, this list of conditions and the following disclaimer in the 1461f28255Scgd * documentation and/or other materials provided with the distribution. 15039cc956Sagc * 3. Neither the name of the University nor the names of its contributors 1661f28255Scgd * may be used to endorse or promote products derived from this software 1761f28255Scgd * without specific prior written permission. 1861f28255Scgd * 1961f28255Scgd * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 2061f28255Scgd * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 2161f28255Scgd * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 2261f28255Scgd * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 2361f28255Scgd * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 2461f28255Scgd * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 2561f28255Scgd * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2661f28255Scgd * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 2761f28255Scgd * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 2861f28255Scgd * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 2961f28255Scgd * SUCH DAMAGE. 3061f28255Scgd * 31b7b7322cSperry * @(#)stdlib.h 8.5 (Berkeley) 5/19/95 3261f28255Scgd */ 3361f28255Scgd 3461f28255Scgd #ifndef _STDLIB_H_ 3561f28255Scgd #define _STDLIB_H_ 3611b51f8dSjtc 3729916a94Smycroft #include <sys/cdefs.h> 38ff08122eSkleink #include <sys/featuretest.h> 39ff08122eSkleink 404be7a2dcSbjh21 #if defined(_NETBSD_SOURCE) 41ff08122eSkleink #include <sys/types.h> /* for quad_t, etc. */ 42f442fd56Sjtc #endif 43f442fd56Sjtc 44b7b7322cSperry #include <machine/ansi.h> 45b7b7322cSperry 462922de74Scgd #ifdef _BSD_SIZE_T_ 472922de74Scgd typedef _BSD_SIZE_T_ size_t; 482922de74Scgd #undef _BSD_SIZE_T_ 4911b51f8dSjtc #endif 5061f28255Scgd 51db576bf3Schristos #if defined(_BSD_WCHAR_T_) && !defined(__cplusplus) 522922de74Scgd typedef _BSD_WCHAR_T_ wchar_t; 532922de74Scgd #undef _BSD_WCHAR_T_ 5461f28255Scgd #endif 5561f28255Scgd 5661f28255Scgd typedef struct { 5761f28255Scgd int quot; /* quotient */ 5861f28255Scgd int rem; /* remainder */ 5961f28255Scgd } div_t; 60f442fd56Sjtc 6161f28255Scgd typedef struct { 6261f28255Scgd long quot; /* quotient */ 6361f28255Scgd long rem; /* remainder */ 6461f28255Scgd } ldiv_t; 6561f28255Scgd 66f46ca6faSriastradh #if defined(_ISOC99_SOURCE) || (__STDC_VERSION__ - 0) >= 199901L || \ 67f46ca6faSriastradh defined(_NETBSD_SOURCE) || (__cplusplus - 0) >= 201103L 68e4d7c2e3Skleink typedef struct { 69e4d7c2e3Skleink /* LONGLONG */ 70e4d7c2e3Skleink long long int quot; /* quotient */ 71e4d7c2e3Skleink /* LONGLONG */ 72e4d7c2e3Skleink long long int rem; /* remainder */ 73e4d7c2e3Skleink } lldiv_t; 74e4d7c2e3Skleink #endif 75e4d7c2e3Skleink 764be7a2dcSbjh21 #if defined(_NETBSD_SOURCE) 77f442fd56Sjtc typedef struct { 78f442fd56Sjtc quad_t quot; /* quotient */ 79f442fd56Sjtc quad_t rem; /* remainder */ 80f442fd56Sjtc } qdiv_t; 81f442fd56Sjtc #endif 82f442fd56Sjtc 83f442fd56Sjtc 841bba558eSkleink #include <sys/null.h> 8509a53cd2Sjtc 8661f28255Scgd #define EXIT_FAILURE 1 8761f28255Scgd #define EXIT_SUCCESS 0 8861f28255Scgd 8961f28255Scgd #define RAND_MAX 0x7fffffff 9061f28255Scgd 91bc3eaa0aSkleink extern size_t __mb_cur_max; 92b7b7322cSperry #define MB_CUR_MAX __mb_cur_max 9361f28255Scgd 9461f28255Scgd __BEGIN_DECLS 95fc883a79Sperry __dead void _Exit(int); 96fc883a79Sperry __dead void abort(void); 97b3991c88Smaya __constfunc int abs(int); 9819b7469aSperry int atexit(void (*)(void)); 9919b7469aSperry double atof(const char *); 10019b7469aSperry int atoi(const char *); 10119b7469aSperry long atol(const char *); 1020b49c770Schristos #ifndef __BSEARCH_DECLARED 1030b49c770Schristos #define __BSEARCH_DECLARED 1040b49c770Schristos /* also in search.h */ 10519b7469aSperry void *bsearch(const void *, const void *, size_t, size_t, 10619b7469aSperry int (*)(const void *, const void *)); 1070b49c770Schristos #endif /* __BSEARCH_DECLARED */ 10819b7469aSperry void *calloc(size_t, size_t); 10919b7469aSperry div_t div(int, int); 110fc883a79Sperry __dead void exit(int); 11119b7469aSperry void free(void *); 11219b7469aSperry __aconst char *getenv(const char *); 113b3991c88Smaya __constfunc long 11419b7469aSperry labs(long); 11519b7469aSperry ldiv_t ldiv(long, long); 11619b7469aSperry void *malloc(size_t); 11719b7469aSperry void qsort(void *, size_t, size_t, int (*)(const void *, const void *)); 11819b7469aSperry int rand(void); 11919b7469aSperry void *realloc(void *, size_t); 12019b7469aSperry void srand(unsigned); 12119b7469aSperry double strtod(const char * __restrict, char ** __restrict); 12219b7469aSperry long strtol(const char * __restrict, char ** __restrict, int); 12361f28255Scgd unsigned long 12419b7469aSperry strtoul(const char * __restrict, char ** __restrict, int); 1255bdc2761Schristos #ifdef _OPENBSD_SOURCE 126f1e6017cSchristos long long strtonum(const char *, long long, long long, const char **); 1275bdc2761Schristos #endif 12819b7469aSperry int system(const char *); 12961f28255Scgd 130b7b7322cSperry /* These are currently just stubs. */ 13119b7469aSperry int mblen(const char *, size_t); 13219b7469aSperry size_t mbstowcs(wchar_t * __restrict, const char * __restrict, size_t); 13319b7469aSperry int wctomb(char *, wchar_t); 13419b7469aSperry int mbtowc(wchar_t * __restrict, const char * __restrict, size_t); 13519b7469aSperry size_t wcstombs(char * __restrict, const wchar_t * __restrict, size_t); 13661f28255Scgd 1374be7a2dcSbjh21 #if defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE) || \ 1384be7a2dcSbjh21 defined(_NETBSD_SOURCE) 139ff08122eSkleink 140ff08122eSkleink 1419b9e2550Skleink /* 1429b9e2550Skleink * IEEE Std 1003.1c-95, also adopted by X/Open CAE Spec Issue 5 Version 2 1439b9e2550Skleink */ 1444be7a2dcSbjh21 #if (_POSIX_C_SOURCE - 0) >= 199506L || (_XOPEN_SOURCE - 0) >= 500 || \ 1454be7a2dcSbjh21 defined(_REENTRANT) || defined(_NETBSD_SOURCE) 14619b7469aSperry int rand_r(unsigned int *); 1479b9e2550Skleink #endif 148ff08122eSkleink 149ff08122eSkleink 1509b9e2550Skleink /* 1519b9e2550Skleink * X/Open Portability Guide >= Issue 4 1529b9e2550Skleink */ 1537cc98087Sdrochner #if defined(_XOPEN_SOURCE) || defined(_NETBSD_SOURCE) 15419b7469aSperry double drand48(void); 15519b7469aSperry double erand48(unsigned short[3]); 15619b7469aSperry long jrand48(unsigned short[3]); 15719b7469aSperry void lcong48(unsigned short[7]); 15819b7469aSperry long lrand48(void); 15919b7469aSperry long mrand48(void); 16019b7469aSperry long nrand48(unsigned short[3]); 161ff08122eSkleink unsigned short * 16219b7469aSperry seed48(unsigned short[3]); 16319b7469aSperry void srand48(long); 164ff08122eSkleink 1650bcf0d6fSchristos #ifndef __LIBC12_SOURCE__ 1660bcf0d6fSchristos int putenv(char *) __RENAME(__putenv50); 1670bcf0d6fSchristos #endif 1689b9e2550Skleink #endif 1699b9e2550Skleink 1709b9e2550Skleink 1719b9e2550Skleink /* 1729b9e2550Skleink * X/Open Portability Guide >= Issue 4 Version 2 1739b9e2550Skleink */ 1744be7a2dcSbjh21 #if (defined(_XOPEN_SOURCE) && defined(_XOPEN_SOURCE_EXTENDED)) || \ 1754be7a2dcSbjh21 (_XOPEN_SOURCE - 0) >= 500 || defined(_NETBSD_SOURCE) 17619b7469aSperry long a64l(const char *); 17719b7469aSperry char *l64a(long); 1789b9e2550Skleink 17919b7469aSperry long random(void); 18019b7469aSperry char *setstate(char *); 1811eb0dcbbSchristos #ifndef __LIBC12_SOURCE__ 182b27e1354Schristos char *initstate(unsigned int, char *, size_t) __RENAME(__initstate60); 183b27e1354Schristos void srandom(unsigned int) __RENAME(__srandom60); 1841eb0dcbbSchristos #endif 185c75e135bSchristos #ifdef _NETBSD_SOURCE 186e3372d31Syamt #define RANDOM_MAX 0x7fffffff /* (((long)1 << 31) - 1) */ 187e00a3615Schristos int mkostemps(char *, int, int); 188c75e135bSchristos #endif 1899b9e2550Skleink 19008cd5f47Schristos char *mktemp(char *) 19108cd5f47Schristos #ifdef __MKTEMP_OK__ 19208cd5f47Schristos __RENAME(_mktemp) 193ab22ce8dSmycroft #endif 19408cd5f47Schristos ; 1959b9e2550Skleink 19619b7469aSperry int setkey(const char *); 1979b9e2550Skleink 1986ddff5efSchristos char *realpath(const char * __restrict, char * __restrict); 1999b9e2550Skleink 20019b7469aSperry int ttyslot(void); 2019b9e2550Skleink 20219b7469aSperry void *valloc(size_t); /* obsoleted by malloc() */ 20358fadb2dSchristos 20419b7469aSperry int grantpt(int); 20519b7469aSperry int unlockpt(int); 20619b7469aSperry char *ptsname(int); 2079b9e2550Skleink #endif 2089b9e2550Skleink 209e4d7c2e3Skleink /* 210e4d7c2e3Skleink * ISO C99 211e4d7c2e3Skleink */ 2124be7a2dcSbjh21 #if defined(_ISOC99_SOURCE) || (__STDC_VERSION__ - 0) >= 199901L || \ 2132e24f900Sjoerg defined(_NETBSD_SOURCE) || (__cplusplus - 0) >= 201103L 2142e24f900Sjoerg 215e4d7c2e3Skleink /* LONGLONG */ 21619b7469aSperry long long int atoll(const char *); 217e4d7c2e3Skleink /* LONGLONG */ 21819b7469aSperry long long int llabs(long long int); 219e4d7c2e3Skleink /* LONGLONG */ 22019b7469aSperry lldiv_t lldiv(long long int, long long int); 221e4d7c2e3Skleink /* LONGLONG */ 22219b7469aSperry long long int strtoll(const char * __restrict, char ** __restrict, int); 223e4d7c2e3Skleink /* LONGLONG */ 22477fbd9feSkleink unsigned long long int 22519b7469aSperry strtoull(const char * __restrict, char ** __restrict, int); 226bc89c06cSkleink float strtof(const char * __restrict, char ** __restrict); 227bc89c06cSkleink long double strtold(const char * __restrict, char ** __restrict); 228e4d7c2e3Skleink #endif 2299b9e2550Skleink 230c4c409afSchristos #if defined(_ISOC11_SOURCE) || (__STDC_VERSION__ - 0) >= 201101L || \ 231c4c409afSchristos defined(_NETBSD_SOURCE) || (__cplusplus - 0) >= 201103L 232b16a5c9dSnros void *aligned_alloc(size_t, size_t); 233c4c409afSchristos int at_quick_exit(void (*)(void)); 234c4c409afSchristos __dead void quick_exit(int); 235c4c409afSchristos #endif 236c4c409afSchristos 2379b9e2550Skleink /* 2388c5e6bc1Skleink * The Open Group Base Specifications, Issue 6; IEEE Std 1003.1-2001 (POSIX) 23913dee93fSkleink */ 2404be7a2dcSbjh21 #if (_POSIX_C_SOURCE - 0) >= 200112L || (_XOPEN_SOURCE - 0) >= 600 || \ 2414be7a2dcSbjh21 defined(_NETBSD_SOURCE) 24219b7469aSperry int setenv(const char *, const char *, int); 24366412e72Schristos #ifndef __LIBC12_SOURCE__ 24419b7469aSperry int unsetenv(const char *) __RENAME(__unsetenv13); 24513dee93fSkleink #endif 24658fadb2dSchristos 24719b7469aSperry int posix_openpt(int); 24895182011Sad int posix_memalign(void **, size_t, size_t); 24913dee93fSkleink #endif 25013dee93fSkleink 25113dee93fSkleink /* 252d9a86489Schristos * The Open Group Base Specifications, Issue 7; IEEE Std 1003.1-2008 (POSIX) 253d9a86489Schristos * or 254d9a86489Schristos * X/Open Portability Guide >= Issue 4 Version 2 255d9a86489Schristos */ 256d9a86489Schristos #if (_POSIX_C_SOURCE - 0) >= 200809L || \ 257d9a86489Schristos (defined(_XOPEN_SOURCE) && defined(_XOPEN_SOURCE_EXTENDED)) || \ 258d9a86489Schristos (_XOPEN_SOURCE - 0) >= 500 || defined(_NETBSD_SOURCE) 259d9a86489Schristos char *mkdtemp(char *); 260d9a86489Schristos int mkstemp(char *); 261d9a86489Schristos 262d9a86489Schristos int getsubopt(char **, char * const *, char **); 263d9a86489Schristos #endif 264d9a86489Schristos 265d9a86489Schristos /* 2669b9e2550Skleink * Implementation-defined extensions 2679b9e2550Skleink */ 2684be7a2dcSbjh21 #if defined(_NETBSD_SOURCE) 269c68ac3ceSnia #if defined(__PCC__) && !defined(__GNUC__) 27079ae39b7Sgmcgarry #define alloca(size) __builtin_alloca(size) 2713ed1b2cbScgd #else 27219b7469aSperry void *alloca(size_t); 2733ed1b2cbScgd #endif /* __GNUC__ */ 274e26feab1Sjtc 2755f65228bSperry uint32_t arc4random(void); 27619b7469aSperry void arc4random_stir(void); 277a52c0478Schristos void arc4random_buf(void *, size_t); 278a52c0478Schristos uint32_t arc4random_uniform(uint32_t); 2795262cf8cSjoerg void arc4random_addrandom(unsigned char *, int); 28019b7469aSperry char *getbsize(int *, long *); 28119b7469aSperry char *cgetcap(char *, const char *, int); 28219b7469aSperry int cgetclose(void); 28319b7469aSperry int cgetent(char **, const char * const *, const char *); 28419b7469aSperry int cgetfirst(char **, const char * const *); 28519b7469aSperry int cgetmatch(const char *, const char *); 28619b7469aSperry int cgetnext(char **, const char * const *); 28719b7469aSperry int cgetnum(char *, const char *, long *); 28819b7469aSperry int cgetset(const char *); 28919b7469aSperry int cgetstr(char *, const char *, char **); 29019b7469aSperry int cgetustr(char *, const char *, char **); 2910d149bc5Schristos void csetexpandtc(int); 2922ca1b1a1Scgd 29319b7469aSperry int daemon(int, int); 2941907ec3aSjoerg int devname_r(dev_t, mode_t, char *, size_t); 29550728e78Schristos #ifndef __LIBC12_SOURCE__ 29650728e78Schristos __aconst char *devname(dev_t, mode_t) __RENAME(__devname50); 29750728e78Schristos #endif 29803dcf031Schristos 29903dcf031Schristos #define HN_DECIMAL 0x01 30003dcf031Schristos #define HN_NOSPACE 0x02 30103dcf031Schristos #define HN_B 0x04 30203dcf031Schristos #define HN_DIVISOR_1000 0x08 30303dcf031Schristos 30403dcf031Schristos #define HN_GETSCALE 0x10 30503dcf031Schristos #define HN_AUTOSCALE 0x20 30603dcf031Schristos 30703dcf031Schristos int humanize_number(char *, size_t, int64_t, const char *, int, int); 30803dcf031Schristos int dehumanize_number(const char *, int64_t *); 309d32f1d2fSchristos ssize_t hmac(const char *, const void *, size_t, const void *, size_t, void *, 310d32f1d2fSchristos size_t); 31103dcf031Schristos 312ad965be0Sdrochner devmajor_t getdevmajor(const char *, mode_t); 31319b7469aSperry int getloadavg(double [], int); 314ac50c9edSderaadt 315ffff20baSkleink int getenv_r(const char *, char *, size_t); 316ffff20baSkleink 31719b7469aSperry void cfree(void *); 3187ec10e70Sjtc 31919b7469aSperry int heapsort(void *, size_t, size_t, int (*)(const void *, const void *)); 32019b7469aSperry int mergesort(void *, size_t, size_t, 32119b7469aSperry int (*)(const void *, const void *)); 322eabc0dd1Schristos int ptsname_r(int, char *, size_t); 32319b7469aSperry int radixsort(const unsigned char **, int, const unsigned char *, 32419b7469aSperry unsigned); 32519b7469aSperry int sradixsort(const unsigned char **, int, const unsigned char *, 32619b7469aSperry unsigned); 3277ec10e70Sjtc 328d6e21947Sjoerg void mi_vector_hash(const void * __restrict, size_t, uint32_t, 329d6e21947Sjoerg uint32_t[3]); 330d6e21947Sjoerg 33119b7469aSperry void setproctitle(const char *, ...) 3328a601553Sjoerg __printflike(1, 2); 3335b557140Sjruoho const char *getprogname(void) __constfunc; 33419b7469aSperry void setprogname(const char *); 33560e54bbbSsommerfeld 33619b7469aSperry quad_t qabs(quad_t); 33719b7469aSperry quad_t strtoq(const char * __restrict, char ** __restrict, int); 33819b7469aSperry u_quad_t strtouq(const char * __restrict, char ** __restrict, int); 339e2b924d2Skleink 3406ca5b5bbSlukem /* LONGLONG */ 3416ca5b5bbSlukem long long strsuftoll(const char *, const char *, long long, long long); 3426ca5b5bbSlukem /* LONGLONG */ 3436ca5b5bbSlukem long long strsuftollx(const char *, const char *, long long, long long, 3446ca5b5bbSlukem char *, size_t); 3456ca5b5bbSlukem 34619b7469aSperry int l64a_r(long, char *, int); 347713e55ceScgd 34819b7469aSperry size_t shquote(const char *, char *, size_t); 34919b7469aSperry size_t shquotev(int, char * const *, char *, size_t); 350c9baa596Sjoerg 351c9baa596Sjoerg int reallocarr(void *, size_t, size_t); 3524be7a2dcSbjh21 #endif /* _NETBSD_SOURCE */ 3534be7a2dcSbjh21 #endif /* _POSIX_C_SOURCE || _XOPEN_SOURCE || _NETBSD_SOURCE */ 354a1560723Skleink 3554be7a2dcSbjh21 #if defined(_NETBSD_SOURCE) 35619b7469aSperry qdiv_t qdiv(quad_t, quad_t); 357a1560723Skleink #endif 358a67fde03Sjoerg 359a67fde03Sjoerg #if (_POSIX_C_SOURCE - 0) >= 200809L || defined(_NETBSD_SOURCE) 360a67fde03Sjoerg # ifndef __LOCALE_T_DECLARED 361a67fde03Sjoerg typedef struct _locale *locale_t; 362a67fde03Sjoerg # define __LOCALE_T_DECLARED 363a67fde03Sjoerg # endif 364c99aac45Sjoerg double strtod_l(const char * __restrict, char ** __restrict, locale_t); 365c99aac45Sjoerg float strtof_l(const char * __restrict, char ** __restrict, locale_t); 366c99aac45Sjoerg long double strtold_l(const char * __restrict, char ** __restrict, 367c99aac45Sjoerg locale_t); 368a67fde03Sjoerg long strtol_l(const char * __restrict, char ** __restrict, int, locale_t); 369a67fde03Sjoerg unsigned long 370a67fde03Sjoerg strtoul_l(const char * __restrict, char ** __restrict, int, locale_t); 371a67fde03Sjoerg /* LONGLONG */ 372a67fde03Sjoerg long long int 373a67fde03Sjoerg strtoll_l(const char * __restrict, char ** __restrict, int, locale_t); 374a67fde03Sjoerg /* LONGLONG */ 375a67fde03Sjoerg unsigned long long int 376a67fde03Sjoerg strtoull_l(const char * __restrict, char ** __restrict, int, locale_t); 377a67fde03Sjoerg 378a67fde03Sjoerg # if defined(_NETBSD_SOURCE) 379a67fde03Sjoerg quad_t strtoq_l(const char * __restrict, char ** __restrict, int, locale_t); 380a67fde03Sjoerg u_quad_t strtouq_l(const char * __restrict, char ** __restrict, int, locale_t); 381ceb51ddcSjoerg 3823c1c8515Sjoerg size_t _mb_cur_max_l(locale_t); 3833c1c8515Sjoerg #define MB_CUR_MAX_L(loc) _mb_cur_max_l(loc) 384ceb51ddcSjoerg int mblen_l(const char *, size_t, locale_t); 385ceb51ddcSjoerg size_t mbstowcs_l(wchar_t * __restrict, const char * __restrict, size_t, 386ceb51ddcSjoerg locale_t); 387ceb51ddcSjoerg int wctomb_l(char *, wchar_t, locale_t); 388ceb51ddcSjoerg int mbtowc_l(wchar_t * __restrict, const char * __restrict, size_t, 389ceb51ddcSjoerg locale_t); 390ceb51ddcSjoerg size_t wcstombs_l(char * __restrict, const wchar_t * __restrict, size_t, 391ceb51ddcSjoerg locale_t); 392ceb51ddcSjoerg 393ceb51ddcSjoerg # endif /* _NETBSD_SOURCE */ 394a67fde03Sjoerg #endif /* _POSIX_C_SOURCE >= 200809 || _NETBSD_SOURCE */ 395a67fde03Sjoerg 39685ba5148Sriastradh #if (_POSIX_C_SOURCE - 0) >= 202405L || \ 39785ba5148Sriastradh defined(_NETBSD_SOURCE) || defined(_OPENBSD_SOURCE) 39885ba5148Sriastradh void *reallocarray(void *, size_t, size_t); 399*fc9238f1Snia int mkostemp(char *, int); 40085ba5148Sriastradh #endif /* _POSIX_C_SOURCE >= 202405L || _NETBSD_SOURCE || _OPENBSD_SOURCE */ 40185ba5148Sriastradh 40261f28255Scgd __END_DECLS 40361f28255Scgd 404e95e818cSmikel #endif /* !_STDLIB_H_ */ 405