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 ; puis
- *
- 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 possible, 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).
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 copyright¶
Consultez les en-têtes de la source de chaque page de manuel pour
connaître le(s) auteur(s) et conditions de copyright. 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),
svipc(7),
symlink(7),
time(7)
COLOPHON¶
Cette page fait partie de la publication 3.65 du projet
man-pages Linux.
Une description du projet et des instructions pour signaler des anomalies
peuvent être trouvées à l'adresse
http://www.kernel.org/doc/man-pages/.
TRADUCTION¶
Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a
<
http://po4a.alioth.debian.org/> par l'équipe de traduction
francophone au sein du projet perkamon
<
http://perkamon.alioth.debian.org/>.
Christophe Blaess <
http://www.blaess.fr/christophe/> (1996-2003), Alain
Portal <
http://manpagesfr.free.fr/> (2003-2006). Julien Cristau et
l'équipe francophone de traduction de Debian (2006-2009).
Veuillez signaler toute erreur de traduction en écrivant à
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet
manpages-fr.
Vous pouvez toujours avoir accès à la version anglaise de ce
document en utilisant la commande «
man -L C
<section>
<page_de_man> ».