Man page - _syscall(2)

Packages contains this manual

Available languages:

en fr it ja ru ro

Manual

_syscall

NOM
SYNOPSIS
DESCRIPTION
FICHIERS
STANDARDS
HISTORIQUE
NOTES
EXEMPLES
Échantillon de sortie
VOIR AUSSI
TRADUCTION

NOM

_syscall - Invoquer un appel systÚme sans prise en charge par la bibliothÚque (OBSOLÈTE)

SYNOPSIS

#include <linux/unistd.h>

Une macro _syscall

L’appel systĂšme dĂ©sirĂ©

DESCRIPTION

La chose importante à savoir sur un appel systùme est son prototype. Vous devez savoir combien d’arguments il prend, leurs types et le type retour de la fonction. Il y a sept macros qui facilitent les appels du systùme. Elles ont la forme :

_syscall X ( type , nom , type1 , arg1 , type2 , arg2 ,...)

oĂč

X est 0–6, qui est le nombre d’argument pris par l’appel systùme

type est le type de retour de l’appel systùme

name est le nom de l’appel systùme

typeN est le type du NiĂšme paramĂštre

argN est le nom du NiĂšme paramĂštre

Ces macros crĂ©ent une fonction appelĂ©e name avec les arguments indiquĂ©s. Une fois que vous avez inclus votre _syscall() dans votre fichier source, vous pouvez appeler l’appel systĂšme par name .

FICHIERS

/usr/include/linux/unistd.h

STANDARDS

Linux.

HISTORIQUE

À partir de Linux 2.6.18 environ, les macros _syscall ont Ă©tĂ© supprimĂ©es des fichiers d’en-tĂȘtes fournis Ă  l’espace utilisateur. Utilisez syscall (2) Ă  la place. (Certaines architectures, particuliĂšrement ia64, n’ont jamais fourni les macros _syscall ; sur ces architectures, syscall (2) Ă©tait toujours nĂ©cessaire.)

NOTES

Les macros _syscall() ne fournissent pas de prototype. Vous devez en créer un, particuliÚrement les utilisateurs de C++.

Il n’est pas obligatoire que les appels systĂšme retournent un code d’erreur seulement positif ou nĂ©gatif. Vous devez lire les sources pour savoir comment les erreurs sont retournĂ©es. GĂ©nĂ©ralement, il s’agit de la valeur opposĂ©e d’un code d’erreur standard, par exemple, - EPERM . Les macros _syscall() retourneront le rĂ©sultat r de l’appel systĂšme lorsque r n’est pas nĂ©gatif, mais retournera -1 et Ă©crira la variable errno avec - r lorsque r est nĂ©gatif. Pour ces codes d’erreurs, consultez errno (3).

Lors de la dĂ©finition d’un appel systĂšme, les types d’arguments doivent ĂȘtre passĂ©s par valeur ou par pointeur (pour les types aggrĂ©gĂ©s comme les structures).

EXEMPLES

#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <linux/unistd.h> /* pour les _syscallX et autres */
#include <linux/kernel.h> /* pour struct sysinfo */
_syscall1(int, sysinfo, struct sysinfo *, info);
int
main(void)
{
struct sysinfo s_info;
int error;
error = sysinfo(&s_info);
printf("code error = %d\n", error);
printf("Uptime = %lds\nLoad: 1 min %lu / 5 min %lu / 15 min %lu\n"
"RAM: total %lu / free %lu / shared %lu\n"
"Memory in buffers = %lu\nSwap: total %lu / free %lu\n"
"Number of processes = %d\n",
s_info.uptime, s_info.loads[0],
s_info.loads[1], s_info.loads[2],
s_info.totalram, s_info.freeram,
s_info.sharedram, s_info.bufferram,
s_info.totalswap, s_info.freeswap,
s_info.procs);
exit(EXIT_SUCCESS);
}

Échantillon de sortie

code error = 0
uptime = 502034s
Load: 1 min 13376 / 5 min 5504 / 15 min 1152
RAM: total 15343616 / free 827392 / shared 8237056
Memory in buffers = 5066752
Swap: total 27881472 / free 24698880
Number of processes = 40

VOIR AUSSI

intro (2), syscall (2), errno (3)

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 .