Namespaces
Variants

Standard library header <stdlib.h>

From cppreference.net

Cet en-tête fait partie de la bibliothèque d'utilitaires de support de programme , en particulier, il fournit des fonctions pour la terminaison de programme, la gestion de mémoire , les conversions de chaînes , la génération de nombres aléatoires . L'en-tête fournit également quelques algorithmes .

Fonctions

provoque la fin anormale du programme (sans nettoyage)
(fonction)
provoque la fin normale du programme avec nettoyage
(fonction)
provoque la fin normale du programme sans nettoyage complet
(fonction)
(C99)
provoque la fin normale du programme sans nettoyage
(fonction)
enregistre une fonction à appeler lors de l'invocation de exit()
(fonction)
enregistre une fonction à appeler lors de l'invocation de quick_exit
(fonction)
indique le statut d'exécution du programme
(constante macro)

Synopsis

#define __STDC_VERSION_STDLIB_H__ 202311L
// TODO: types et macros
void call_once(once_flag* flag, void (*func)(void));
double atof(const char* nptr);
int atoi(const char* nptr);
long int atol(const char* nptr);
long long int atoll(const char* nptr);
int strfromd(char* restrict s, size_t n, const char* restrict format, double fp);
int strfromf(char* restrict s, size_t n, const char* restrict format, float fp);
int strfroml(char* restrict s, size_t n, const char* restrict format, long double fp);
double strtod(const char* restrict nptr, char** restrict endptr);
float strtof(const char* restrict nptr, char** restrict endptr);
long double strtold(const char* restrict nptr, char** restrict endptr);
long int strtol(const char* restrict nptr, char** restrict endptr, int base);
long long int strtoll(const char* restrict nptr, char** restrict endptr, int base);
unsigned long int strtoul(const char* restrict nptr, char** restrict endptr, int base);
unsigned long long int strtoull(const char* restrict nptr,
                                char** restrict endptr, int base);
int rand(void);
void srand(unsigned int seed);
void* aligned_alloc(size_t alignment, size_t size);
void* calloc(size_t nmemb, size_t size);
void free(void* ptr);
void free_sized(void* ptr, size_t size);
void free_aligned_sized(void* ptr, size_t alignment, size_t size);
void* malloc(size_t size);
void* realloc(void* ptr, size_t size);
[[noreturn]] void abort(void);
int atexit(void (*func)(void));
int at_quick_exit(void (*func)(void));
[[noreturn]] void exit(int status);
[[noreturn]] void _Exit(int status);
char* getenv(const char* name);
[[noreturn]] void quick_exit(int status);
int system(const char* string);
QVoid* bsearch(const void* key, QVoid* base, size_t nmemb, size_t size,
               int (*compar)(const void* , const void* ));
void qsort(void* base, size_t nmemb, size_t size,
           int (*compar)(const void* , const void* ));
int abs(int j);
long int labs(long int j);
long long int llabs(long long int j);
div_t div(int numer, int denom);
ldiv_t ldiv(long int numer, long int denom);
lldiv_t lldiv(long long int numer, long long int denom);
int mblen(const char* s, size_t n);
int mbtowc(wchar_t* restrict pwc, const char* restrict s, size_t n);
int wctomb(char* s, wchar_t wc);
size_t mbstowcs(wchar_t* restrict pwcs, const char* restrict s, size_t n);
size_t wcstombs(char* restrict s, const wchar_t* restrict pwcs, size_t n);
size_t memalignment(const void* p);

Seulement si l'implémentation définit __STDC_IEC_60559_DFP__ :

int strfromd32(char* restrict s, size_t n, const char* restrict format, _Decimal32 fp);
int strfromd64(char* restrict s, size_t n, const char* restrict format, _Decimal64 fp);
int strfromd128(char* restrict s, size_t n, const char* restrict format, _Decimal128 fp);
_Decimal32 strtod32(const char* restrict nptr, char** restrict endptr);
_Decimal64 strtod64(const char* restrict nptr, char** restrict endptr);
_Decimal128 strtod128(const char* restrict nptr, char** restrict endptr);

Seulement si l'implémentation définit __STDC_IEC_60559_TYPES__ et que le code utilisateur définit __STDC_WANT_IEC_60559_TYPES_EXT__ avant toute inclusion de <stdlib.h> :

#ifdef __STDC_WANT_IEC_60559_TYPES_EXT__
int strfromfN(char* restrict s, size_t n, const char* restrict format, _FloatN fp);
int strfromfNx(char* restrict s, size_t n, const char* restrict format, _FloatNx fp);
int strfromdN(char* restrict s, size_t n, const char* restrict format, _DecimalN fp);
int strfromdNx(char* restrict s, size_t n, const char* restrict format, _DecimalNx fp);
_FloatN strtofN(const char* restrict nptr, char** restrict endptr);
_FloatNx strtofNx(const char* restrict nptr, char** restrict endptr);
_DecimalN strtodN(const char* restrict nptr, char** restrict endptr);
_DecimalNx strtodNx(const char* restrict nptr, char** restrict endptr);
int strfromencfN(char* restrict s, size_t n, const char* restrict format,
                 const unsigned char encptr[restrict static N/8]);
int strfromencdecdN(char* restrict s, size_t n, const char* restrict format,
                    const unsigned char encptr[restrict static N/8]);
int strfromencbindN(char* restrict s, size_t n, const char* restrict format,
                    const unsigned char encptr[restrict static N/8]);
void strtoencfN(unsigned char encptr[restrict static N/8],
                const char* restrict nptr, char** restrict endptr);
void strtoencdecdN(unsigned char encptr[restrict static N/8],
                   const char* restrict nptr, char** restrict endptr);
void strtoencbindN(unsigned char encptr[restrict static N/8],
                   const char* restrict nptr, char** restrict endptr);
#endif

Seulement si l'implémentation définit __STDC_LIB_EXT1__ et que de plus le code utilisateur définit __STDC_WANT_LIB_EXT1__ avant toute inclusion de stdio.h :

#if defined(__STDC_WANT_LIB_EXT1__)
constraint_handler_t set_constraint_handler_s(constraint_handler_t handler);
void abort_handler_s(const char* restrict msg, void* restrict ptr, errno_t error);
void ignore_handler_s(const char* restrict msg, void* restrict ptr, errno_t error);
errno_t getenv_s(size_t* restrict len, char* restrict value, rsize_t maxsize,
                 const char* restrict name);
QVoid* bsearch_s(const void* key, QVoid* base, rsize_t nmemb, rsize_t size,
                 int (*compar)(const void* k, const void* y, void* context),
                               void* context);
errno_t qsort_s(void* base, rsize_t nmemb, rsize_t size,
                int (*compar)(const void* x, const void* y, void* context),
                              void* context);
errno_t wctomb_s(int* restrict status, char* restrict s, rsize_t smax,
                 wchar_t wc);
errno_t mbstowcs_s(size_t* restrict retval, wchar_t* restrict dst, rsize_t dstmax,
                   const char* restrict src, rsize_t len);
errno_t wcstombs_s(size_t* restrict retval, char* restrict dst, rsize_t dstmax,
                   const wchar_t* restrict src, rsize_t len);
#endif