Provided by: manpages-fr_4.13-4_all 

NOM
intro - Introduction à la section des appels système
DESCRIPTION
La section 2 des manuels décrit les appels système Linux. Un appel système est un point d'entrée dans le
noyau Linux. Généralement, les appels système ne sont pas invoqués directement : à la place, la plupart
des appels système ont des fonctions enveloppes correspondantes dans la bibliothèque C qui effectuent les
étapes nécessaires (par exemple, déroutement (trap) en mode noyau) afin d'invoquer l'appel système.
Ainsi, faire un appel système ressemble à la même chose que d'invoquer une fonction de la bibliothèque.
Dans bien des cas, la fonction enveloppe fournie par la bibliothèque C ne fait rien deplus que :
– copier les paramètres et le numéro unique d'appel système dans les registres où le noyau les attend ;
– déroutement (« trap ») en mode noyau, à la suite de quoi le noyau effectue le travail concret de
l'appel système ;
– positionner errno si l'appel système a renvoyé un numéro d'erreur au moment où le noyau repasse le CPU
en mode utilisateur.
Cependant, dans certains cas, une fonction enveloppe peut faire plus que cela, comme prétraiter les
paramètres avant de passer en mode noyau, ou post-traiter les valeurs renvoyées par l'appel système.
Lorsque c'est le cas, les pages de manuel de la section 2 essaient de décrire les détails à la fois de
l'interface de programmation de la bibliothèque C (généralement GNU) et de l'appel système brut. Plus
généralement, la section DESCRIPTION de la page se concentre sur l'interface de la bibliothèque C, puis
les différences de l'appel système sont décrites dans la section NOTES.
Pour avoir une liste des appels système de Linux, consultez la page syscalls(2).
VALEUR RENVOYÉE
En cas d'erreur, la plupart des appels système renvoient une valeur d'erreur négative (c'est-à-dire, la
valeur opposée de l'une des constantes décrites dans errno(3)). La fonction enveloppe de la bibliothèque
C cache ce détail à l'appelant : lorsqu'un appel système renvoie une valeur négative, la fonction
enveloppe met dans la variable errno la valeur absolue de cette valeur de retour et renvoie -1 comme sa
valeur de retour.
La valeur renvoyée par un appel système réussi dépend de l'appel. Beaucoup d'appels système renvoient 0
lorsqu'ils réussissent, mais certains renvoient parfois une valeur non nulle dans ce cas. Les détails
sont décrits dans leur page de manuel associée.
Dans certains cas, le programmeur doit définir une macro de test de fonctionnalités afin d'obtenir la
déclaration d'un appel système du fichier d'en-tête spécifié dans la section SYNOPSIS de la page de
manuel (si elle est nécessaire, cette macro de test de fonctionnalités doit être définie avant d'inclure
tout fichier d'en‐tête). Dans de tels cas, la macro nécessaire est décrite dans la page de manuel. Pour
plus d'informations sur les macros de test de fonctionnalités, consultez feature_test_macros(7).
CONFORMITÉ
Certains termes et abréviations sont utilisés pour indiquer les variantes d'UNIX ou les normes auxquelles
les appels de cette section se conforment. Consultez standards(7).
NOTES
Appel Direct
Dans la plupart des cas, il n'est pas nécessaire d'invoquer un appel système directement, mais il arrive
parfois que la bibliothèque standard de C n'implémente pas une fonction pourtant utile. Dans ce cas, le
programmeur doit invoquer l'appel système à la main, en utilisant syscall(2). Auparavant il était aussi
possible d'utiliser les macros _syscall, qui sont décrites dans _syscall(2).
Auteurs et termes de droit d'auteur
Consultez les en-têtes de la source de chaque page de manuel pour connaître le(s) auteur(s) et conditions
de droit d'auteur. Ils peuvent être différents selon les pages.
VOIR AUSSI
_syscall(2), syscall(2), syscalls(2), errno(3), intro(3), capabilities(7), credentials(7),
feature_test_macros(7), mq_overview(7), path_resolution(7), pipe(7), pty(7), sem_overview(7),
shm_overview(7), signal(7), socket(7), standards(7), system_data_types(7), symlink(7), sysvipc(7),
time(7)
COLOPHON
Cette page fait partie de la publication 5.10 du projet man-pages Linux. Une description du projet et des
instructions pour signaler des anomalies et la dernière version de cette page peuvent être trouvées à
l'adresse https://www.kernel.org/doc/man-pages/.
TRADUCTION
La traduction française de cette page de manuel a été créée par Christophe Blaess
<https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud
<tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard
<fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau
<jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François
<nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard
<simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot
<david@tilapin.org> et Jean-Philippe MENGUAL <jpmengual@debian.org>
Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License
version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à
debian-l10n-french@lists.debian.org.
Linux 1 novembre 2020 INTRO(2)