#include <stdlib.h>
stdlib.h
macro_LIBC_COUNT__MB_LEN_MAX
#define _LIBC_COUNT__MB_LEN_MAX _LIBC_UNSAFE_INDEXABLE
macro_LIBC_COUNT__PATH_MAX
#define _LIBC_COUNT__PATH_MAX _LIBC_UNSAFE_INDEXABLE
structdiv_t
| int | quot | quotient |
| int | rem | remainder |
typedefdiv_t
typedef struct div_t div_t;
structldiv_t
| long | quot | quotient |
| long | rem | remainder |
typedefldiv_t
typedef struct ldiv_t ldiv_t;
structlldiv_t
| long long | quot | |
| long long | rem |
typedeflldiv_t
typedef struct lldiv_t lldiv_t;
macroEXIT_FAILURE
#define EXIT_FAILURE 1
macroEXIT_SUCCESS
#define EXIT_SUCCESS 0
macroRAND_MAX
#define RAND_MAX 0x7fffffff
variable__mb_cur_max
extern int __mb_cur_max
macroMB_CUR_MAX
#define MB_CUR_MAX __mb_cur_max
functionatexit
int atexit(void (* _Nonnull)(void))
man page · September 6, 2002
atexit(3) — register a function to be called on exitfunctionat_quick_exit
int at_quick_exit(void (*)(void))
man page · December 7, 2011
at_quick_exit(3) — registers a cleanup function to run on quick exitfunctionatol
long atol(const char *)
functionatoll
long long atoll(const char *)
functionbsearch
void *bsearch( const void *_LIBC_SIZE(__width) __key, const void *_LIBC_SIZE(__width * __nel) __base, size_t __nel, size_t __width, int (* _Nonnull __compar)(const void *, const void *) )
man page · May 20, 2008
bsearch(3) — binary search of a sorted tablefunctiondiv
__pure2 div_t div(int, int)
calloc is now declared in _malloc.h
man page · November 14, 2001
div(3) — return quotient and remainder from divisionfunctionexit
__dead2
void exit(int)functiongetenv
char *_LIBC_CSTR getenv(const char *)
free is now declared in _malloc.h
man page · June 20, 2007
getenv(3) — environment variable functionsfunctionlabs
__pure2
long labs(long)man page · November 14, 2001
labs(3) — return the absolute value of a long integerfunctionldiv
__pure2 ldiv_t ldiv(long, long)
man page · November 14, 2001
ldiv(3) — return quotient and remainder from divisionfunctionllabs
long long llabs(long long)
man page · November 14, 2001
llabs(3) — returns absolute valuefunctionlldiv
lldiv_t lldiv(long long, long long)
man page · November 14, 2001
lldiv(3) — returns quotient and remainderfunctionmblen
int mblen(const char *_LIBC_COUNT(__n) __s, size_t __n)
malloc is now declared in _malloc.h
man page · April 11, 2004
mblen(3) — get number of bytes in a characterfunctionmbstowcs
size_t mbstowcs( wchar_t * __restrict _LIBC_COUNT(__n), const char * __restrict, size_t __n )
man page · April 8, 2004
mbstowcs(3) — convert a character string to a wide-character stringfunctionmbtowc
int mbtowc(wchar_t * __restrict, const char * __restrict _LIBC_COUNT(__n), size_t __n)
man page · April 11, 2004
mbtowc(3) — convert a character to a wide-character codefunctionqsort
void qsort( void *_LIBC_SIZE(__nel * __width) __base, size_t __nel, size_t __width, int (* _Nonnull __compar)(const void *, const void *) )
posix_memalign is now declared in _malloc.h
man page · September 30, 2003
qsort(3) — sort functionsfunctionquick_exit
__dead2
void quick_exit(int)man page · November 4, 2017
quick_exit(3) — exits a program quickly, running minimal cleanupfunctionrand
__swift_unavailable("Use arc4random instead.")
int rand(void)man page · May 25, 1999
rand(3) — bad random number generatorfunctionsrand
__swift_unavailable("Use arc4random instead.")
void srand(unsigned)realloc is now declared in _malloc.h
man page · May 25, 1999
srand(3) — bad random number generatorfunctionstrtol
long strtol(const char *__str, char *_LIBC_CSTR *__endptr, int __base)
man page · November 28, 2001
strtol(3) — "convert a string value to a"functionstrtold
long double strtold(const char *, char *_LIBC_CSTR *)
functionstrtoll
long long strtoll(const char *__str, char *_LIBC_CSTR *__endptr, int __base)
man page · November 28, 2001
strtoll(3) — "convert a string value to a"functionstrtoul
unsigned long strtoul(const char *__str, char *_LIBC_CSTR *__endptr, int __base)
man page · November 28, 2001
strtoul(3) — "convert a string to an"functionstrtoull
unsigned long long strtoull(const char *__str, char *_LIBC_CSTR *__endptr, int __base)
man page · November 28, 2001
strtoull(3) — "convert a string to an"functionsystem
__swift_unavailable("Use posix_spawn APIs or NSTask instead. (On iOS, process spawning is unavailable.)") __API_AVAILABLE(macos(10.0)) __IOS_PROHIBITED __WATCHOS_PROHIBITED __TVOS_PROHIBITED __DARWIN_ALIAS_C(system)
int system(const char *)man page · June 4, 1993
system(3) — pass a command to the shellfunctionwcstombs
size_t wcstombs( char * __restrict _LIBC_COUNT(__n), const wchar_t * __restrict, size_t __n )
man page · April 8, 2004
wcstombs(3) — convert a wide-character string to a character stringfunctionwctomb
int wctomb(char *_LIBC_COUNT__MB_LEN_MAX, wchar_t)
man page · April 8, 2004
wctomb(3) — convert a wide-character code to a characterfunction_Exit
__dead2
void _Exit(int)functiona64l
long a64l(const char *)
man page · August 17, 1997
a64l(3) — convert between 32-bit integer and radix-64 ASCII stringfunctiondrand48
double drand48(void)
man page · October 8, 1993
drand48(3) — pseudo random number generators and initialization routinesfunctionecvt
char *_LIBC_CSTR ecvt(
/* LEGACY */
double,
int,
int *__restrict,
int *__restrict
)man page · $Mdocdate: May 31 2007 $
ecvt(3) — convert double tofunctionerand48
double erand48(unsigned short[3])
man page · October 8, 1993
erand48(3) — pseudo random number generators and initialization routinesfunctionfcvt
char *_LIBC_CSTR fcvt(
/* LEGACY */
double,
int,
int *__restrict,
int *__restrict
)man page · $Mdocdate: May 31 2007 $
fcvt(3) — convert double tofunctiongcvt
char *_LIBC_CSTR gcvt(
/* LEGACY */
double,
int,
char *_LIBC_UNSAFE_INDEXABLE
)man page · $Mdocdate: May 31 2007 $
gcvt(3) — convert double tofunctiongetsubopt
int getsubopt( char *_LIBC_CSTR *, char *_LIBC_CSTR const *_LIBC_NULL_TERMINATED, char *_LIBC_CSTR * )
man page · June 9, 1993
getsubopt(3) — get sub options from an argumentfunctiongrantpt
int grantpt(int)
man page · June 17, 2025
grantpt(3) — pseudo-terminal access functionsfunctioninitstate
char *_LIBC_UNSAFE_INDEXABLE initstate( /* no __DARWIN_ALIAS needed */ unsigned, char *_LIBC_COUNT(__size), size_t __size )
man page · June 4, 1993
initstate(3) — better random number generator; routines for changing generatorsfunctionjrand48
__swift_unavailable("Use arc4random instead.")
long jrand48(unsigned short[3])man page · October 8, 1993
jrand48(3) — pseudo random number generators and initialization routinesfunctionl64a
char *l64a(long)
man page · August 17, 1997
l64a(3) — convert between 32-bit integer and radix-64 ASCII stringfunctionlcong48
void lcong48(unsigned short[7])
man page · October 8, 1993
lcong48(3) — pseudo random number generators and initialization routinesfunctionlrand48
__swift_unavailable("Use arc4random instead.")
long lrand48(void)man page · October 8, 1993
lrand48(3) — pseudo random number generators and initialization routinesfunctionmktemp
__deprecated_msg("This function is provided for compatibility reasons only. Due to security concerns inherent in the design of mktemp , it is highly recommended that you use mkstemp(3) instead.") char *_LIBC_CSTR mktemp(char *_LIBC_CSTR)
(3)deprecated
man page · December 18, 2015
mktemp(3) — make temporary file name (unique)functionmkstemp
int mkstemp(char *_LIBC_CSTR)
man page · December 18, 2015
mkstemp(3) — make temporary file name (unique)functionmrand48
__swift_unavailable("Use arc4random instead.")
long mrand48(void)man page · October 8, 1993
mrand48(3) — pseudo random number generators and initialization routinesfunctionnrand48
__swift_unavailable("Use arc4random instead.")
long nrand48(unsigned short[3])man page · October 8, 1993
nrand48(3) — pseudo random number generators and initialization routinesfunctionposix_openpt
int posix_openpt(int)
man page · June 17, 2025
posix_openpt(3) — pseudo-terminal access functionsfunctionptsname
char *_LIBC_CSTR ptsname(int)
man page · June 17, 2025
ptsname(3) — pseudo-terminal access functionsfunctionptsname_r
__API_AVAILABLE(macos(10.13.4), ios(11.3), tvos(11.3), watchos(4.3)) int ptsname_r(int fildes, char *_LIBC_COUNT(buflen) buffer, size_t buflen)
man page · June 17, 2025
ptsname_r(3) — pseudo-terminal access functionsfunctionputenv
__DARWIN_ALIAS(putenv)
int putenv(char *_LIBC_CSTR)man page · June 20, 2007
putenv(3) — environment variable functionsfunctionrandom
__swift_unavailable("Use arc4random instead.")
long random(void)man page · June 4, 1993
random(3) — better random number generator; routines for changing generatorsfunctionrand_r
__swift_unavailable("Use arc4random instead.")
int rand_r(unsigned *)man page · May 25, 1999
rand_r(3) — bad random number generatorfunctionrealpath
__DARWIN_EXTSN(realpath) char *_LIBC_CSTR realpath( const char * __restrict, char * __restrict _LIBC_COUNT__PATH_MAX )
man page · April 5, 2008
realpath(3) — returns the canonicalized absolute pathnamefunctionseed48
unsigned short *_LIBC_COUNT(3) seed48(unsigned short[3])
man page · October 8, 1993
seed48(3) — pseudo random number generators and initialization routinesfunctionsetenv
__DARWIN_ALIAS(setenv)
int setenv(const char * __name, const char * __value, int __overwrite)man page · June 20, 2007
setenv(3) — environment variable functionsfunctionsetkey
__DARWIN_ALIAS(setkey)
void setkey(const char *)man page · March 9, 1994
setkey(3) — DES encryptionfunctionsetstate
char *_LIBC_UNSAFE_INDEXABLE setstate(const char *_LIBC_UNSAFE_INDEXABLE)
man page · June 4, 1993
setstate(3) — better random number generator; routines for changing generatorsfunctionsrand48
void srand48(long)
man page · October 8, 1993
srand48(3) — pseudo random number generators and initialization routinesfunctionsrandom
void srandom(unsigned)
man page · June 4, 1993
srandom(3) — better random number generator; routines for changing generatorsfunctionunlockpt
int unlockpt(int)
man page · June 17, 2025
unlockpt(3) — pseudo-terminal access functionsfunctionunsetenv
__DARWIN_ALIAS(unsetenv)
int unsetenv(const char *)man page · June 20, 2007
unsetenv(3) — environment variable functionsfunctionarc4random
uint32_t arc4random(void)
man page · July 30, 2015
arc4random(3) — random number generatorfunctionarc4random_addrandom
__OSX_DEPRECATED(10.0, 10.12, "use arc4random_stir") __IOS_DEPRECATED(2.0, 10.0, "use arc4random_stir") __TVOS_DEPRECATED(2.0, 10.0, "use arc4random_stir") __WATCHOS_DEPRECATED(1.0, 3.0, "use arc4random_stir") void arc4random_addrandom( /* dat */ /* dat */ unsigned char *_LIBC_COUNT(__datlen), int __datlen )
deprecated
functionarc4random_buf
__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3) void arc4random_buf(void *_LIBC_SIZE(__nbytes) __buf, size_t __nbytes)
man page · July 30, 2015
arc4random_buf(3) — random number generatorfunctionarc4random_stir
void arc4random_stir(void)
functionarc4random_uniform
__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3)
uint32_t arc4random_uniform(uint32_t __upper_bound)man page · July 30, 2015
arc4random_uniform(3) — random number generatorfunctionatexit_b
__OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2)
int atexit_b(void (^ _Nonnull)(void))functionbsearch_b
__OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2) void *bsearch_b( const void *_LIBC_SIZE(__width) __key, const void *_LIBC_SIZE(__width * __nel) __base, size_t __nel, size_t __width, int (^ _Nonnull __compar)(const void *, const void *) __bsearch_noescape )
man page · May 20, 2008
bsearch_b(3) — binary search of a sorted tablefunctioncgetcap
char *_LIBC_CSTR cgetcap(char *_LIBC_CSTR, const char *, int)
getcap(3) functions
man page · March 22, 2002
cgetcap(3) — capability database access routinesfunctioncgetclose
int cgetclose(void)
man page · March 22, 2002
cgetclose(3) — capability database access routinesfunctioncgetent
int cgetent(char *_LIBC_CSTR *, char *_LIBC_CSTR *_LIBC_NULL_TERMINATED, const char *)
man page · March 22, 2002
cgetent(3) — capability database access routinesfunctioncgetfirst
int cgetfirst(char *_LIBC_CSTR *, char *_LIBC_CSTR *_LIBC_NULL_TERMINATED)
man page · March 22, 2002
cgetfirst(3) — capability database access routinesfunctioncgetmatch
int cgetmatch(const char *, const char *)
man page · March 22, 2002
cgetmatch(3) — capability database access routinesfunctioncgetnext
int cgetnext(char *_LIBC_CSTR *, char *_LIBC_CSTR *_LIBC_NULL_TERMINATED)
man page · March 22, 2002
cgetnext(3) — capability database access routinesfunctioncgetnum
int cgetnum(char *_LIBC_CSTR, const char *, long *)
man page · March 22, 2002
cgetnum(3) — capability database access routinesfunctioncgetset
int cgetset(const char *)
man page · March 22, 2002
cgetset(3) — capability database access routinesfunctioncgetstr
int cgetstr(char *_LIBC_CSTR, const char *, char *_LIBC_CSTR *)
man page · March 22, 2002
cgetstr(3) — capability database access routinesfunctioncgetustr
int cgetustr(char *_LIBC_CSTR, const char *, char *_LIBC_CSTR *)
man page · March 22, 2002
cgetustr(3) — capability database access routinesfunctiondaemon
__DARWIN_1050(daemon) __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_0, __MAC_10_5, __IPHONE_2_0, __IPHONE_2_0, "Use posix_spawn APIs instead.") __WATCHOS_PROHIBITED __TVOS_PROHIBITED
int daemon(int, int)deprecated
man page · June 9, 1993
daemon(3) — run in the backgroundfunctiondevname
char *_LIBC_CSTR devname(dev_t, mode_t)
man page · October 25, 2004
devname(3) — get device namefunctiondevname_r
char *_LIBC_CSTR devname_r(dev_t, mode_t, char *_LIBC_COUNT(len) buf, int len)
man page · October 25, 2004
devname_r(3) — get device namefunctiongetbsize
char *_LIBC_CSTR getbsize(int *, long *)
man page · November 16, 2012
getbsize(3) — get preferred block sizefunctiongetloadavg
int getloadavg(double [_LIBC_COUNT(__nelem)], int __nelem)
man page · June 4, 1993
getloadavg(3) — get system load averagesfunctiongetprogname
const char *getprogname(void)
man page · May 1, 2001
getprogname(3) — get or set the program namefunctionsetprogname
void setprogname(const char *)
man page · May 1, 2001
setprogname(3) — get or set the program namefunctionheapsort
int heapsort( void *_LIBC_SIZE(__nel * __width) __base, size_t __nel, size_t __width, int (* _Nonnull __compar)(const void *, const void *) )
man page · September 30, 2003
heapsort(3) — sort functionsfunctionheapsort_b
__OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2) int heapsort_b( void *_LIBC_SIZE(__nel * __width) __base, size_t __nel, size_t __width, int (^ _Nonnull __compar)(const void *, const void *) __sort_noescape )
man page · September 30, 2003
heapsort_b(3) — sort functionsfunctionmergesort
int mergesort( void *_LIBC_SIZE(__nel * __width) __base, size_t __nel, size_t __width, int (* _Nonnull __compar)(const void *, const void *) )
man page · September 30, 2003
mergesort(3) — sort functionsfunctionmergesort_b
__OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2) int mergesort_b( void *_LIBC_SIZE(__nel * __width) __base, size_t __nel, size_t __width, int (^ _Nonnull __compar)(const void *, const void *) __sort_noescape )
man page · September 30, 2003
mergesort_b(3) — sort functionsfunctionpsort
__OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2) void psort( void *_LIBC_SIZE(__nel * __width) __base, size_t __nel, size_t __width, int (* _Nonnull __compar)(const void *, const void *) )
man page · Nov 25, 2008
psort(3) — parallel sort functionsfunctionpsort_b
__OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2) void psort_b( void *_LIBC_SIZE(__nel * __width) __base, size_t __nel, size_t __width, int (^ _Nonnull __compar)(const void *, const void *) __sort_noescape )
man page · Nov 25, 2008
psort_b(3) — parallel sort functionsfunctionpsort_r
__OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2) void psort_r( void *_LIBC_SIZE(__nel * __width) __base, size_t __nel, size_t __width, void *, int (* _Nonnull __compar)(void *, const void *, const void *) )
man page · Nov 25, 2008
psort_r(3) — parallel sort functionsfunctionqsort_b
__OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2) void qsort_b( void *_LIBC_SIZE(__nel * __width) __base, size_t __nel, size_t __width, int (^ _Nonnull __compar)(const void *, const void *) __sort_noescape )
man page · September 30, 2003
qsort_b(3) — sort functionsfunctionqsort_r
void qsort_r( void *_LIBC_SIZE(__nel * __width) __base, size_t __nel, size_t __width, void *, int (* _Nonnull __compar)(void *, const void *, const void *) )
man page · September 30, 2003
qsort_r(3) — sort functionsfunctionradixsort
int radixsort( const unsigned char *_LIBC_UNSAFE_INDEXABLE *_LIBC_COUNT(__nel) __base, int __nel, const unsigned char *_LIBC_COUNT_OR_NULL(256) __table, unsigned __endbyte )
functionrpmatch
__API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0), watchos(6.0))
int rpmatch(const char *)functionsradixsort
int sradixsort( const unsigned char *_LIBC_UNSAFE_INDEXABLE *_LIBC_COUNT(__nel) __base, int __nel, const unsigned char *_LIBC_COUNT_OR_NULL(256) __table, unsigned __endbyte )
functionsrandomdev
void srandomdev(void)
man page · June 4, 1993
srandomdev(3) — better random number generator; routines for changing generatorsfunctionstrtonum
__API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), watchos(7.0))
long long strtonum(
const char *__numstr,
long long __minval,
long long __maxval,
const char *_LIBC_CSTR *__errstrp
)reallocf is now declared in _malloc.h
man page · April 29, 2004
strtonum(3) — "reliably convert string value to an integer"functionstrtoq
long long strtoq(const char *__str, char *_LIBC_CSTR *__endptr, int __base)
man page · November 28, 2001
strtoq(3) — "convert a string value to a"functionstrtouq
unsigned long long strtouq(const char *__str, char *_LIBC_CSTR *__endptr, int __base)
man page · November 28, 2001
strtouq(3) — "convert a string to an"