hosted
) tandis que stddef.h doit être disponible aussi dans les implémentations sans environnement (freestanding
).
Structures de données | |
struct | div_t |
type du résultat de div() Plus de détails... | |
struct | ldiv_t |
type du résultat de ldiv() Plus de détails... | |
Macros | |
#define | NULL |
pointeur nul | |
#define | EXIT_FAILURE |
fin anormale du programme | |
#define | EXIT_SUCCESS |
fin normale du programme | |
#define | RAND_MAX |
nombre aléatoire maximal | |
#define | MB_CUR_MAX |
Taille maximale d'un caractère multibyte. | |
Définition de type | |
typedef __unsigned | size_t |
taille des objets | |
typedef __integral | wchar_t |
caractère large | |
Fonctions | |
double | atof (const char *s) |
convertion en double | |
int | atoi (const char *s) |
convertion en int | |
long | atol (const char *s) |
convertion en long | |
double | strtod (const char *s, char **endptr) |
conversion en double | |
long | strtol (const char *s, char **endptr, int base) |
conversion en long | |
unsigned long | strtoul (const char *s, char **endptr, int base) |
conversion en unsigned long | |
int | rand (void) |
nombre pseudo-aléatoire | |
void | srand (unsigned graine) |
initialisation d'une séquence pseudo-aléatoire | |
void * | calloc (size_t nelts, size_t eltsize) |
allocation et initialisation de mémoire dynamique | |
void | free (void *ptr) |
libération de la mémoire | |
void * | malloc (size_t size) |
allocation de mémoire dynamique | |
void * | realloc (void *ptr, size_t size) |
réallocation de mémoire | |
void | abort (void) |
fin anormale | |
int | atexit (void(*func)(void)) |
enregistrement d'un gestionnaire de fin normale du programme | |
void | exit (int status) |
fin normale du programme | |
char * | getenv (const char *name) |
lecture de l'environnement | |
int | system (const char *s) |
exécute d'une commande | |
void * | bsearch (const void *key, const void *base, size_t nelts, size_t eltsize, int(*compar)(const void *, const void *)) |
recherche par dichotomie | |
void | qsort (void *base, size_t nelts, size_t eltsize, int(*compar)(const void *, const void *)) |
tri | |
int | abs (int i) |
valeur absolue | |
div_t | div (int num, int denom) |
division | |
long | labs (long i) |
valeur absolue | |
ldiv_t | ldiv (long num, int denom) |
division | |
int | mblen (const char *s, size_t n) |
taille d'un caractère multibyte | |
int | mbtowc (wchar_t *dst, const char *src, size_t n) |
conversion d'un caractère multibyte en caractère large | |
int | wctomb (char *dst, wchar_t ch) |
conversion d'un caractère large en caractère multibyte | |
size_t | mbstowcs (wchar_t *dst, const char *src, size_t n) |
conversion d'une chaîne de caractères multibytes en chaîne de caractères larges | |
size_t | wcstombs (char *dst, const wchar_t *src, size_t n) |
conversion d'une chaîne de caractères larges en chaîne de caractères multibytes |
#define EXIT_FAILURE |
Expression entière qui, utilisée comme argument de exit(), permet de signaler une fin anormale du programme.
#define EXIT_SUCCESS |
Expression entière qui, utilisée comme argument de exit(), permet de signaler une fin normale du programme.
#define MB_CUR_MAX |
Le nombre maximal de bytes dans un caractère multibyte pour toutes la locale courante.
#define NULL |
Cette macro contient une constante de pointeur nul. Des valeurs populaires sont 0, 0L, (void*)0.
Voir stddef.h pour plus d'informations.
#define RAND_MAX |
Expression entière constante indiquant la valeur maximale retournée par rand().
typedef __unsigned size_t |
Ce type entier non signé est capable de contenir la taille des objets.
Voir stddef.h pour plus d'informations.
typedef __integral wchar_t |
Ce type entier est capable de représenter tous les codes pour le charset le plus étendu parmi les charsets des locales supportées.
Voir stddef.h pour plus d'informations.
void abort | ( | void | ) |
Cette fonction ne retourne pas et cause la fin anormale du programme à moins que le signal SIGABRT est attrapé et que le gestionnaire du signal ne retourne pas. Une indication d'échec est transmise au système d'exploitation.
int abs | ( | int | i | ) |
Calcule la valeur absolue de i
. Si celle-ci n'est pas représentable, le comportement est indéfini.
i
. int atexit | ( | void(*)(void) | func | ) |
Enregistre une fonction qui sera appelée lors de la fin normale du programme (par un appel à exit() ou par retour de main()). Ces fonctions ne peuvent pas appeler exit().
double atof | ( | const char * | s | ) |
int atoi | ( | const char * | s | ) |
long atol | ( | const char * | s | ) |
void* bsearch | ( | const void * | key, | |
const void * | base, | |||
size_t | nelts, | |||
size_t | eltsize, | |||
int(*)(const void *, const void *) | compar | |||
) |
Recherche dans un tableau de nelts
éléments de taille eltsize
pointé par base
, un élément égal à la valeur pointée par key
. La fonction compar
est utilisée pour effectuer la comparaison et doit retourner un entier plus petit, égal ou plus grand que zéro si la valeur pointée par son premier argument doit être considérée comme plus petite, égale ou plus grande que la valeur pointée par son second argument.
Le tableau doit être composé dans l'ordre des éléments inférieurs, égaux ou supérieurs à la clé. En pratique, il est donc trié.
Alloue assez de mémoire pour y mettre un tableau de nelts
éléments de taille eltsize
. Cette mémoire est correctement alignée pour pouvoir y placer des éléments de n'importe quel type de taille inférieure ou égale à size
. Cette mémoire est initialisée avec tous les bits à 0 (ce qui n'implique pas une valeur nulle pour les types flottants et les pointeurs).
div_t div | ( | int | num, | |
int | denom | |||
) |
Calcule le résultat et le reste de la division de num
par denom
. Le quotient est stocké dans le membre quot
du résultat, le reste dans le membre rem
. On a l'égalité suivante: quot
* denom
+ rem
= num
. Le reste est inférieur en valeur absolue au diviseur et même signe que denom
, le quotient est en valeur absolue à la valeur absolue du quotient réel de num
par denom
.
num
/ denom
) * denom
+ num
% denom
= num
et que num
% denom
soitinférieur à denom
en valeur absolue, il n'y a pas de contrainte sur le signe de num
% denom
qui peut donc être celui de denom
. void exit | ( | int | status | ) |
Cette fonction en retourne pas et cause la fin normale du programme.
Tout d'abord les fonctions enregistrées par atexit() sont appelées, dans l'ordre inverse de leur enregistrement.
Ensuite les données non encore écrite des tampons des flux en sortie sont écrites, tous les flux ouverts sont fermés et les fichiers créés par tmpfile() sont effacés.
Ensuite si la valeur de status
est 0 ou EXIT_SUCCES, le programme est terminé avec une indication de réussite, si la valeur de status
est EXIT_FAILURE, le programme est terminé avec une indication d'échec, si la valeur de status est autre, le programme est terminé avec une indication d'état définie par l'implémentation.
void free | ( | void * | ptr | ) |
Libère la mémoire pointée par ptr
, qui doit être un pointeur retourné par calloc(), malloc() ou realloc() qui n'a pas encore été libéré par free() ou par realloc(). La mémoire ainsi libérée pourra être utilisée pour des allocations ultérieures (il est possible mais relativement rare que la mémoire soit rendue au système d'exploitation).
char* getenv | ( | const char * | name | ) |
name
dans l'environnement ou un pointeur nul si l'environnement n'a pas de chaîne associée au nom name
.
long labs | ( | long | i | ) |
Calcule la valeur absolue de i
. Si celle-ci n'est pas représentable, le comportement est indéfini.
i
. ldiv_t ldiv | ( | long | num, | |
int | denom | |||
) |
Calcule le résultat et le reste de la division de num
par denom
. Le quotient est stocké dans le membre quot
du résultat, le reste dans le membre rem
. On a l'égalité suivante: quot
* denom
+ rem
= num
. Le reste est inférieur en valeur absolue au diviseur et même signe que denom
, le quotient est en valeur absolue à la valeur absolue du quotient réel de num
par denom
.
num
/ denom
) * denom
+ num
% denom
= num
et que num
% denom
soitinférieur à denom
en valeur absolue, il n'y a pas de contrainte sur le signe de num
% denom
qui peut donc être celui de denom
. void* malloc | ( | size_t | size | ) |
Alloue size
bytes de mémoire, correctement allignés pour y mettre un objet de n'importe quel type de taille inférieure ou égale à size
.
int mblen | ( | const char * | s, | |
size_t | n | |||
) |
s
est un pointeur nul, retourne une valeur non nulle ou zéro suivant que l'encodage des caractères multibytes dépende ou pas d'un état.
Si s
n'est pas un pointeur nul, retourne 0 si s
pointe vers le caractère nul; retourne le nombre de bytes du caractères multibyte pointé par s
si celui-ci est bien valide et fait moins de n
bytes ou -1 si les n
premiers bytes ne forment pas un caractère multibyte valide.
Je ne connais aucun moyen de ramener l'état interne dans l'état initial.
Converti une chaîne de caractères multibytes, commencant dans l'état initial, pointée par src
en une chaîne de caractères larges stockée dans le tableau de n
éléments pointés par dst
.
src
contient une séquence invalidele nombre de caractères larges écrits (non compris le caractère nul final) sinon.
Converti un caractère multibyte pointé par src
en un caractère large stocké dans *dst
si dst
est non nul et que le caractère est valide.
s
est un pointeur nul, retourne une valeur non nulle ou zéro suivant que l'encodage des caractères multibytes dépende ou pas d'un état.
Si s
n'est pas un pointeur nul, retourne 0 si s
pointe vers le caractère nul; retourne le nombre de bytes du caractères multibyte pointé par s
si celui-ci est bien valide et fait moins de n
bytes ou -1 si les n
premiers bytes ne forment pas un caractère multibyte valide.
Je ne connais aucun moyen de ramener l'état interne dans l'état initial.
Trie dans l'ordre croissant un tableau de nelts
éléments de taille eltsize
pointé par base
. L'ordre est déterminé par la fonction compar
qui doit retourner un entier plus petit, égal ou plus grand que zéro si la valeur pointée par son premier argument doit être considérée comme plus petite, égale ou plus grande que la valeur pointée par son second argument.
int rand | ( | void | ) |
Les appels successifs à rand() renvoie des nombres dans l'intervalle 0 à RAND_MAX formant une séquence pseudo-aléatoire.
graine
passé au dernier appel à srand() et du nombre d'appel à rand() ayant eu lieu depuis.
void* realloc | ( | void * | ptr, | |
size_t | size | |||
) |
Change la taille de la mémoire allouée à ptr
en size
. Si le changement réussit, le pointeur retourné pointe vers une zone mémoire de taille size
dont le début (jusqu'au plus petit de l'ancienne et de la nouvelle taille) a le même contenu que la zone pointée par ptr
.
Si l'allocation échoue, la mémoire pointée par ptr
n'est pas libérée et est inchangée.
Si ptr
est nul, se comporte comme malloc().
ptr
doit être un pointeur retourné par malloc(), calloc() ou realloc() et pas encore libéré par un appel à free() ou à realloc().
void srand | ( | unsigned | graine | ) |
graine
sert à déterminer la séquence pseudo-aléatoire dont les éléments sont retournés par rand().
double strtod | ( | const char * | s, | |
char ** | endptr | |||
) |
Converti le début de la chaîne pointée par s
en un double et, si endptr
n'est pas nul, place dans *endptr
un pointeur vers le premier caractère non utilisé.
Le format reconnu est décrit par l'expression régulière (au format des expressions régulières étendues de POSIX) suivante:
^[[:space:]]*[+-]?([0-9]+.[0-9]*|.[0-9]+)([eE][+-]?[0-9]+)
HUGE_VAL
et ERANGE
est stocké dans errno
. Si un underflow a lieu, 0 et ERANGE
est stocké dans errno.
long strtol | ( | const char * | s, | |
char ** | endptr, | |||
int | base | |||
) |
Converti le début de la chaîne pointée par s
en un long
et, si endptr
n'est pas nul, place dans *endptr
un pointeur vers le premier caractère non utilisé.
Si la base n'est pas nulle, le format reconnu est une séquence, éventuellement vide, de blancs, un signe (+ ou -) optionel suivit d'une séquence de chiffres en base base
(les lettres a à z étant considérés comme les chiffres 10 à 35). Si la base est 16, la séquence 0x ou 0X peut se trouver avant les chiffres.
Si la base est nulle, le format est celui des constantes entières du C, précédée éventuellement d'un signe (+ ou -).
LONG_MAX
ou LONG_MIN
suivant le signe et ERANGE
est stocké dans errno
.
unsigned long strtoul | ( | const char * | s, | |
char ** | endptr, | |||
int | base | |||
) |
Converti le début de la chaîne pointée par s
en un unsigned long et, si endptr
n'est pas nul, place dans *endptr
un pointeur vers le premier caractère non utilisé.
Si la base n'est pas nulle, le format reconnu est une séquence, éventuellement vide, de blancs, un signe (+ ou -) optionel suivit d'une séquence de chiffres en base base
(les lettres a à z étant considérés comme les chiffres 10 à 35). Si la base est 16, la séquence 0x ou 0X peut se trouver avant les chiffres.
Si la base est nulle, le format est celui des constantes entières du C, précédée éventuellement d'un signe (+ ou -).
int system | ( | const char * | s | ) |
La chaîne s
est passée à un interpréteur de commandes pour être exécutée.
s
est un pointeur nul, une valeur non nulle si un interpréteur de commande est disponible, une valeur nulle sinon.s
n'est pas un pointeur nul, une valeur dépendante de l'implémentation.
Converti une chaîne de caractères larges pointée par src
en une chaîne de caractères multibytes commencant dans l'état initial sockée dans le tableau de n
bytes pointé par dst
.
le nombre de bytes écrits (non compris le caractère nul final) sinon.
int wctomb | ( | char * | dst, | |
wchar_t | ch | |||
) |
Converti le caractère large ch
en un caractère multibyte stocké dans *dst
, si dst
n'est pas un pointeur nul.
dst
est un pointeur nul, retourne une valeur non nulle ou zéro suivant que l'encodage des caractères multibytes dépende ou pas d'un état.
si dst
n'est pas un pointeur nul, retourne -1 si la valeur de ch
n'est pas un caractère valide, retourne le nombre de bytes dans la représentation multibyte si ch
est un caractère valide.
MB_CUR_MAX
bytes.Je ne connais aucun moyen de ramener l'état interne dans l'état initial.