#include <stdlib.h>

stdlib.h

includes: _stdlib.h, Availability.h, sys/cdefs.h, _bounds.h, _types.h, sys/wait.h, alloca.h, sys/_types/_size_t.h, sys/_types/_ct_rune_t.h, sys/_types/_rune_t.h, sys/_types/_wchar_t.h, sys/_types/_null.h, malloc/_malloc.h, _abort.h, machine/types.h, sys/_types/_dev_t.h, sys/_types/_mode_t.h, _types/_uint32_t.h, _stdlib.h
106 functions · 6 macros · 3 structs · 3 typedefs · 2 variables

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

size 8, align 4
intquotquotient
intremremainder

typedefdiv_t

typedef struct div_t div_t;

structldiv_t

size 16, align 8
longquotquotient
longremremainder

typedefldiv_t

typedef struct ldiv_t ldiv_t;

structlldiv_t

size 16, align 8
long longquot
long longrem

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

functionabs

__pure2
int abs(int)
man page · November 14, 2001
abs(3) — integer absolute value function

functionatexit

int atexit(void (* _Nonnull)(void))
man page · September 6, 2002
atexit(3) — register a function to be called on exit

functionat_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 exit

functionatof

double atof(const char *)
man page · June 4, 1993
atof(3) — convert

functionatoi

int atoi(const char *)
man page · June 4, 1993
atoi(3) — convert

functionatol

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 table

functiondiv

__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 division

functionexit

__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 functions

functionlabs

__pure2
long labs(long)
man page · November 14, 2001
labs(3) — return the absolute value of a long integer

functionldiv

__pure2
ldiv_t ldiv(long, long)
man page · November 14, 2001
ldiv(3) — return quotient and remainder from division

functionllabs

long long llabs(long long)
man page · November 14, 2001
llabs(3) — returns absolute value

functionlldiv

lldiv_t lldiv(long long, long long)
man page · November 14, 2001
lldiv(3) — returns quotient and remainder

functionmblen

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 character

functionmbstowcs

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 string

functionmbtowc

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 code

functionqsort

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 functions

functionquick_exit

__dead2
void quick_exit(int)
man page · November 4, 2017
quick_exit(3) — exits a program quickly, running minimal cleanup

functionrand

__swift_unavailable("Use arc4random instead.")
int rand(void)
man page · May 25, 1999
rand(3) — bad random number generator

functionsrand

__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 generator

functionstrtod

__DARWIN_ALIAS(strtod)
double strtod(const char *, char *_LIBC_CSTR *)

functionstrtof

__DARWIN_ALIAS(strtof)
float strtof(const char *, char *_LIBC_CSTR *)

functionstrtol

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 shell

functionwcstombs

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 string

functionwctomb

int wctomb(char *_LIBC_COUNT__MB_LEN_MAX, wchar_t)
man page · April 8, 2004
wctomb(3) — convert a wide-character code to a character

function_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 string

functiondrand48

double drand48(void)
man page · October 8, 1993
drand48(3) — pseudo random number generators and initialization routines

functionecvt

char *_LIBC_CSTR ecvt(
	/* LEGACY */
	double,
	int,
	int *__restrict,
	int *__restrict
)
man page · $Mdocdate: May 31 2007 $
ecvt(3) — convert double to

functionerand48

double erand48(unsigned short[3])
man page · October 8, 1993
erand48(3) — pseudo random number generators and initialization routines

functionfcvt

char *_LIBC_CSTR fcvt(
	/* LEGACY */
	double,
	int,
	int *__restrict,
	int *__restrict
)
man page · $Mdocdate: May 31 2007 $
fcvt(3) — convert double to

functiongcvt

char *_LIBC_CSTR gcvt(
	/* LEGACY */
	double,
	int,
	char *_LIBC_UNSAFE_INDEXABLE
)
man page · $Mdocdate: May 31 2007 $
gcvt(3) — convert double to

functiongetsubopt

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 argument

functiongrantpt

int grantpt(int)
man page · June 17, 2025
grantpt(3) — pseudo-terminal access functions

functioninitstate

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 generators

functionjrand48

__swift_unavailable("Use arc4random instead.")
long jrand48(unsigned short[3])
man page · October 8, 1993
jrand48(3) — pseudo random number generators and initialization routines

functionl64a

char *l64a(long)
man page · August 17, 1997
l64a(3) — convert between 32-bit integer and radix-64 ASCII string

functionlcong48

void lcong48(unsigned short[7])
man page · October 8, 1993
lcong48(3) — pseudo random number generators and initialization routines

functionlrand48

__swift_unavailable("Use arc4random instead.")
long lrand48(void)
man page · October 8, 1993
lrand48(3) — pseudo random number generators and initialization routines

functionmktemp

__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 routines

functionnrand48

__swift_unavailable("Use arc4random instead.")
long nrand48(unsigned short[3])
man page · October 8, 1993
nrand48(3) — pseudo random number generators and initialization routines

functionposix_openpt

int posix_openpt(int)
man page · June 17, 2025
posix_openpt(3) — pseudo-terminal access functions

functionptsname

char *_LIBC_CSTR ptsname(int)
man page · June 17, 2025
ptsname(3) — pseudo-terminal access functions

functionptsname_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 functions

functionputenv

__DARWIN_ALIAS(putenv)
int putenv(char *_LIBC_CSTR)
man page · June 20, 2007
putenv(3) — environment variable functions

functionrandom

__swift_unavailable("Use arc4random instead.")
long random(void)
man page · June 4, 1993
random(3) — better random number generator; routines for changing generators

functionrand_r

__swift_unavailable("Use arc4random instead.")
int rand_r(unsigned *)
man page · May 25, 1999
rand_r(3) — bad random number generator

functionrealpath

__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 pathname

functionseed48

unsigned short *_LIBC_COUNT(3) seed48(unsigned short[3])
man page · October 8, 1993
seed48(3) — pseudo random number generators and initialization routines

functionsetenv

__DARWIN_ALIAS(setenv)
int setenv(const char * __name, const char * __value, int __overwrite)
man page · June 20, 2007
setenv(3) — environment variable functions

functionsetkey

__DARWIN_ALIAS(setkey)
void setkey(const char *)
man page · March 9, 1994
setkey(3) — DES encryption

functionsetstate

char *_LIBC_UNSAFE_INDEXABLE setstate(const char *_LIBC_UNSAFE_INDEXABLE)
man page · June 4, 1993
setstate(3) — better random number generator; routines for changing generators

functionsrand48

void srand48(long)
man page · October 8, 1993
srand48(3) — pseudo random number generators and initialization routines

functionsrandom

void srandom(unsigned)
man page · June 4, 1993
srandom(3) — better random number generator; routines for changing generators

functionunlockpt

int unlockpt(int)
man page · June 17, 2025
unlockpt(3) — pseudo-terminal access functions

functionunsetenv

__DARWIN_ALIAS(unsetenv)
int unsetenv(const char *)
man page · June 20, 2007
unsetenv(3) — environment variable functions

functionarc4random

uint32_t arc4random(void)
man page · July 30, 2015
arc4random(3) — random number generator

functionarc4random_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 generator

functionarc4random_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 generator

functionatexit_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 table

functioncgetcap

char *_LIBC_CSTR cgetcap(char *_LIBC_CSTR, const char *, int)
getcap(3) functions
man page · March 22, 2002
cgetcap(3) — capability database access routines

functioncgetclose

int cgetclose(void)
man page · March 22, 2002
cgetclose(3) — capability database access routines

functioncgetent

int cgetent(char *_LIBC_CSTR *, char *_LIBC_CSTR *_LIBC_NULL_TERMINATED, const char *)
man page · March 22, 2002
cgetent(3) — capability database access routines

functioncgetfirst

int cgetfirst(char *_LIBC_CSTR *, char *_LIBC_CSTR *_LIBC_NULL_TERMINATED)
man page · March 22, 2002
cgetfirst(3) — capability database access routines

functioncgetmatch

int cgetmatch(const char *, const char *)
man page · March 22, 2002
cgetmatch(3) — capability database access routines

functioncgetnext

int cgetnext(char *_LIBC_CSTR *, char *_LIBC_CSTR *_LIBC_NULL_TERMINATED)
man page · March 22, 2002
cgetnext(3) — capability database access routines

functioncgetnum

int cgetnum(char *_LIBC_CSTR, const char *, long *)
man page · March 22, 2002
cgetnum(3) — capability database access routines

functioncgetset

int cgetset(const char *)
man page · March 22, 2002
cgetset(3) — capability database access routines

functioncgetstr

int cgetstr(char *_LIBC_CSTR, const char *, char *_LIBC_CSTR *)
man page · March 22, 2002
cgetstr(3) — capability database access routines

functioncgetustr

int cgetustr(char *_LIBC_CSTR, const char *, char *_LIBC_CSTR *)
man page · March 22, 2002
cgetustr(3) — capability database access routines

functiondaemon

__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 background

functiondevname

char *_LIBC_CSTR devname(dev_t, mode_t)
man page · October 25, 2004
devname(3) — get device name

functiondevname_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 name

functiongetbsize

char *_LIBC_CSTR getbsize(int *, long *)
man page · November 16, 2012
getbsize(3) — get preferred block size

functiongetloadavg

int getloadavg(double [_LIBC_COUNT(__nelem)], int __nelem)
man page · June 4, 1993
getloadavg(3) — get system load averages

functiongetprogname

const char *getprogname(void)
man page · May 1, 2001
getprogname(3) — get or set the program name

functionsetprogname

void setprogname(const char *)
man page · May 1, 2001
setprogname(3) — get or set the program name

functionheapsort

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 functions

functionheapsort_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 functions

functionmergesort

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 functions

functionmergesort_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 functions

functionpsort

__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 functions

functionpsort_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 functions

functionpsort_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 functions

functionqsort_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 functions

functionqsort_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 functions

functionradixsort

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
)

functionsranddev

void sranddev(void)
man page · May 25, 1999
sranddev(3) — bad random number generator

functionsrandomdev

void srandomdev(void)
man page · June 4, 1993
srandomdev(3) — better random number generator; routines for changing generators

functionstrtonum

__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"

variablesuboptarg

extern char *_LIBC_CSTR suboptarg
getsubopt(3) external variable