Fonctions du cours¶
Cette page regroupe les fonctions présentées dans le cours, classées par en-tête (le fichier à inclure avec #include). Chaque nom renvoie vers le bloc du cours qui donne sa signature, ses paramètres et sa valeur de retour.
La colonne Norme indique où la fonction est définie :
C : bibliothèque standard du C, disponible partout (
aligned_allocet les fonctionsatomic_*datent de C11) ;POSIX : norme des systèmes de type Unix (Linux, macOS, BSD…) ;
Linux/BSD : extension non portable, absente de la norme POSIX ;
macro : macro qui s’utilise comme une fonction.
Le man reste la référence complète : section 2 pour les appels système (man 2 open), section 3 pour les fonctions de bibliothèque (man 3 printf). Quand un nom existe aussi comme commande, précisez la section : man printf affiche la commande du shell, man 3 printf la fonction C.
La dernière section, Fonctions vues en TP, liste les fonctions utilisées dans les exercices sans être présentées dans le cours.
<stdio.h>¶
Fonction |
Rôle |
Norme |
Chapitre |
|---|---|---|---|
Affiche un texte formaté sur la sortie standard. |
C |
||
Écrit un texte formaté dans un flux ( |
C |
||
Vide le buffer d’un flux. |
C |
||
Lit des valeurs formatées sur l’entrée standard. |
C |
||
Lit une ligne (de taille bornée) depuis un flux. |
C |
||
Affiche sur |
C |
||
Ouvre un fichier et retourne un flux |
C |
||
Ferme un flux (après avoir vidé son buffer). |
C |
||
Associe un flux |
POSIX |
||
Choisit le mode de bufferisation d’un flux (par ligne, par bloc…). |
C |
Les fonctions suivantes n’ont pas de bloc détaillé : elles sont présentées dans le tableau libc/POSIX du chapitre Partie 2 - Fichiers.
Fonction |
Signature |
Rôle |
Norme |
|---|---|---|---|
|
|
Lit des blocs d’octets depuis un flux. |
C |
|
|
Écrit des blocs d’octets dans un flux. |
C |
|
|
Écrit une chaîne dans un flux (sans ajouter de |
C |
|
|
Lit une ligne entière, en allouant le buffer dans la heap si besoin. |
POSIX |
|
|
Écrit un texte formaté dans une chaîne, sans dépasser sa taille. |
C |
|
|
Déplace la position de lecture/écriture d’un flux. |
C |
<stdlib.h>¶
Fonction |
Rôle |
Norme |
Chapitre |
|---|---|---|---|
Convertit le début d’une chaîne en |
C |
||
Alloue une zone mémoire dans la heap. |
C |
||
Alloue un tableau dans la heap, initialisé à zéro. |
C |
||
Change la taille d’une zone allouée dans la heap. |
C |
||
Libère une zone allouée dans la heap. |
C |
||
Termine le programme après avoir vidé les buffers des flux. |
C |
||
Retourne un entier pseudo-aléatoire entre |
C |
||
Initialise la graine utilisée par |
C |
||
Alloue dans la heap une zone dont l’adresse est alignée. |
POSIX |
||
Alloue dans la heap une zone dont l’adresse est alignée. |
C |
<string.h>¶
Fonction |
Rôle |
Norme |
Chapitre |
|---|---|---|---|
Retourne la longueur d’une chaîne (sans le |
C |
||
Copie une chaîne dans une autre. |
C |
||
Copie au plus |
C |
||
Ajoute une chaîne à la fin d’une autre. |
C |
||
Compare deux chaînes. |
C |
||
Retourne la position du premier caractère appartenant à un ensemble donné. |
C |
||
Remplit une zone mémoire avec un même octet. |
C |
||
Retourne la description d’un code d’erreur ( |
C |
||
Retourne la description d’un numéro de signal. |
POSIX |
<time.h>¶
Fonction |
Rôle |
Norme |
Chapitre |
|---|---|---|---|
Retourne l’heure courante, en secondes depuis le 1er janvier 1970. |
C |
||
Retourne le temps CPU consommé par le programme. |
C |
<unistd.h>¶
Fonction |
Rôle |
Norme |
Chapitre |
|---|---|---|---|
Ferme un descripteur de fichier. |
POSIX |
||
Écrit des octets sur un descripteur. |
POSIX |
||
Lit des octets depuis un descripteur. |
POSIX |
||
Déplace la position de lecture/écriture d’un descripteur. |
POSIX |
||
Crée un processus enfant, copie du processus appelant. |
POSIX |
||
Retourne le PID du processus appelant. |
POSIX |
||
Retourne le PID du processus parent. |
POSIX |
||
Remplace le programme du processus (chemin, arguments en liste). |
POSIX |
||
Remplace le programme du processus (recherche dans le |
POSIX |
||
Remplace le programme du processus (chemin, arguments en tableau). |
POSIX |
||
Remplace le programme du processus (recherche dans le |
POSIX |
||
Comme |
POSIX |
||
Comme |
POSIX |
||
Comme |
Linux/BSD |
||
Comme |
POSIX |
||
Termine le processus immédiatement, sans vider les buffers de la libc. |
POSIX |
||
Suspend le processus jusqu’à la réception d’un signal. |
POSIX |
||
Suspend le processus pendant un nombre de secondes. |
POSIX |
||
Crée un pipe anonyme (un descripteur de lecture, un d’écriture). |
POSIX |
||
Supprime un nom de fichier (fichier, FIFO…). |
POSIX |
||
Retourne le TID du thread appelant (Linux uniquement). |
Linux/BSD |
<fcntl.h>¶
Fonction |
Rôle |
Norme |
Chapitre |
|---|---|---|---|
Ouvre (ou crée) un fichier et retourne un descripteur. |
POSIX |
<sys/stat.h>¶
Fonction |
Rôle |
Norme |
Chapitre |
|---|---|---|---|
Fixe le masque des droits retirés à la création des fichiers. |
POSIX |
||
Crée un pipe nommé (FIFO). |
POSIX |
<sys/file.h>¶
Fonction |
Rôle |
Norme |
Chapitre |
|---|---|---|---|
Pose ou retire un verrou sur un fichier ouvert. |
Linux/BSD |
<sys/wait.h>¶
Fonction |
Rôle |
Norme |
Chapitre |
|---|---|---|---|
Attend la fin d’un enfant quelconque. |
POSIX |
||
Attend la fin d’un enfant donné (sans bloquer avec |
POSIX |
||
Indique si l’enfant s’est terminé normalement. |
macro |
||
Donne le code de retour de l’enfant. |
macro |
||
Indique si l’enfant a été tué par un signal. |
macro |
||
Donne le numéro du signal qui a tué l’enfant. |
macro |
<signal.h>¶
Fonction |
Rôle |
Norme |
Chapitre |
|---|---|---|---|
Envoie un signal à un processus. |
POSIX |
||
Choisit la réaction à un signal (gestionnaire, ignorer…). |
POSIX |
||
Vide un ensemble de signaux. |
POSIX |
||
Ajoute un signal à un ensemble. |
POSIX |
||
Retire un signal d’un ensemble. |
POSIX |
||
Teste si un signal fait partie d’un ensemble. |
POSIX |
<pthread.h>¶
Fonction |
Rôle |
Norme |
Chapitre |
|---|---|---|---|
Crée un thread qui exécute une fonction. |
POSIX |
||
Attend la fin d’un thread et récupère sa valeur de retour. |
POSIX |
||
Termine le thread appelant. |
POSIX |
||
Détache un thread : ses ressources sont libérées à sa fin, sans |
POSIX |
||
Initialise un objet d’attributs de thread. |
POSIX |
||
Choisit dans les attributs si le thread sera créé détaché. |
POSIX |
||
Détruit un objet d’attributs de thread. |
POSIX |
||
Initialise un mutex. |
POSIX |
||
Détruit un mutex. |
POSIX |
||
Verrouille un mutex (attend s’il est déjà verrouillé). |
POSIX |
||
Déverrouille un mutex. |
POSIX |
||
Libère le mutex et attend un signal sur la variable de condition. |
POSIX |
||
Réveille un thread en attente sur la variable de condition. |
POSIX |
||
Réveille tous les threads en attente sur la variable de condition. |
POSIX |
||
Initialise une variable de condition. |
POSIX |
||
Détruit une variable de condition. |
POSIX |
<stdatomic.h>¶
Fonction |
Rôle |
Norme |
Chapitre |
|---|---|---|---|
Lit une variable atomique. |
C |
||
Écrit dans une variable atomique. |
C |
||
Ajoute une valeur à une variable atomique et retourne l’ancienne valeur. |
C |
||
Soustrait une valeur à une variable atomique et retourne l’ancienne valeur. |
C |
<sys/socket.h>¶
Fonction |
Rôle |
Norme |
Chapitre |
|---|---|---|---|
Crée un socket et retourne son descripteur. |
POSIX |
||
Modifie une option d’un socket (par exemple |
POSIX |
||
Associe une adresse (IP et port) à un socket. |
POSIX |
||
Met un socket TCP en écoute des connexions entrantes. |
POSIX |
||
Accepte une connexion et retourne un nouveau descripteur pour ce client. |
POSIX |
||
Connecte un socket à une adresse distante. |
POSIX |
||
Envoie des octets sur un socket connecté. |
POSIX |
||
Reçoit des octets sur un socket connecté. |
POSIX |
||
Envoie un datagramme à une adresse donnée (UDP). |
POSIX |
||
Reçoit un datagramme et l’adresse de son expéditeur (UDP). |
POSIX |
||
Ferme un sens de la communication, ou les deux. |
POSIX |
<arpa/inet.h>¶
Fonction |
Rôle |
Norme |
Chapitre |
|---|---|---|---|
Convertit un entier 16 bits de l’ordre de l’hôte vers l’ordre réseau. |
POSIX |
||
Convertit un entier 32 bits de l’ordre de l’hôte vers l’ordre réseau. |
POSIX |
||
Convertit un entier 16 bits de l’ordre réseau vers l’ordre de l’hôte. |
POSIX |
||
Convertit un entier 32 bits de l’ordre réseau vers l’ordre de l’hôte. |
POSIX |
||
Convertit une adresse IP écrite en texte vers sa forme binaire. |
POSIX |
||
Convertit une adresse IP binaire en texte. |
POSIX |
Fonctions vues en TP¶
Ces fonctions sont utilisées dans les exercices (énoncés ou corrections) mais ne sont pas présentées dans le cours. La colonne Exercice renvoie vers les exercices où elles apparaissent ; consultez leur page de man pour le détail.
<stdio.h>¶
Fonction |
Signature |
Rôle |
Exercice |
|---|---|---|---|
|
|
Affiche une chaîne suivie d’un |
|
|
|
Lit un caractère sur l’entrée standard. |
|
|
|
Indique si la fin de fichier a été atteinte sur un flux. |
|
|
|
Indique si une erreur s’est produite sur un flux. |
|
|
|
Renomme (ou déplace) un fichier. |
<stdlib.h>¶
Fonction |
Signature |
Rôle |
Exercice |
|---|---|---|---|
|
|
Convertit une chaîne en |
|
|
|
Convertit une chaîne en |
|
|
|
Convertit une chaîne en |
|
|
|
Convertit une chaîne en |
|
|
|
Convertit une chaîne en |
|
|
|
Comme |
<string.h>¶
Fonction |
Signature |
Rôle |
Exercice |
|---|---|---|---|
|
|
Compare au plus les |
|
|
|
Cherche la première occurrence d’un caractère dans une chaîne. |
|
|
|
Découpe une chaîne en morceaux selon des séparateurs (la chaîne est modifiée). |
<ctype.h>¶
<time.h>¶
Fonction |
Signature |
Rôle |
Exercice |
|---|---|---|---|
|
|
Lit une horloge (par exemple |
|
|
|
Convertit un |
|
|
|
Comme |
|
|
|
Décompose un |
|
|
|
Comme |
|
|
|
Écrit une date ( |
|
|
|
Suspend le thread pendant une durée précise (secondes et nanosecondes). |
<sys/stat.h>¶
Fonction |
Signature |
Rôle |
Exercice |
|---|---|---|---|
|
|
Crée un répertoire. |
<unistd.h>¶
Fonction |
Signature |
Rôle |
Exercice |
|---|---|---|---|
|
|
Teste l’existence d’un fichier ou les droits du processus sur ce fichier. |
|
|
|
Crée un lien physique vers un fichier. |
|
|
|
Crée un lien symbolique vers un fichier. |
|
|
|
Change le répertoire courant du processus. |