Provided by: manpages-fr-dev_4.13-4_all bug

NOM

       sysctl - Lire/écrire les paramètres système

SYNOPSIS

       #include <unistd.h>
       #include <linux/sysctl.h>

       int _sysctl(struct __sysctl_args *args);

DESCRIPTION

       This system call no longer exists on current kernels! See NOTES.

       L'appel  système  _sysctl()  lit  et/ou  écrit  les paramètres du noyau. Par exemple, le nom d'hôte ou le
       nombre maximal de fichiers ouverts. L'argument a la forme

           struct __sysctl_args {
               int    *name;    /* tableau d'entiers décrivant la variable */
               int     nlen;    /* longueur de ce tableau */
               void   *oldval;  /* 0 ou adresse où stocker l'ancienne valeur */
               size_t *oldlenp; /* espace disponible pour l'ancienne valeur,
                                   remplacé par la taille réelle de cette valeur */
               void   *newval;  /* 0 ou adresse de la nouvelle valeur */
               size_t  newlen;  /* taille de la nouvelle valeur */
           };

       Cet appel effectue une recherche dans la structure arborescente regroupée sous le  répertoire  /proc/sys,
       puis,  si  les  valeurs réclamées y sont trouvées, appelle les routines appropriées pour lire ou modifier
       les valeurs.

VALEUR RENVOYÉE

       _sysctl() renvoie 0 s'il réussit, et -1 s'il échoue auquel cas errno contient le code d'erreur.

ERREURS

       EACCES, EPERM
              Pas de droits de parcours sur l'un des « répertoires » rencontrés, ou pas de permission de lecture
              avec oldval non nul, ou encore pas de permission d'écriture avec newval non nul.

       EFAULT Demande de lecture de la valeur précédente en fournissant oldval  non  NULL,  mais  pas  de  place
              disponible dans oldlenp.

       ENOTDIR
              name non trouvé.

VERSIONS

       This  system  call first appeared in Linux 1.3.57. It was removed in Linux 5.5; glibc support was removed
       in version 2.32.

CONFORMITÉ

       This call is Linux-specific, and should not be used in programs intended to be portable. It originated in
       4.4BSD. Only Linux has the /proc/sys mirror, and the object  naming  schemes  differ  between  Linux  and
       4.4BSD, but the declaration of the sysctl()  function is the same in both.

NOTES

       Use  of  this  system  call  was long discouraged: since Linux 2.6.24, uses of this system call result in
       warnings in the kernel log, and in Linux 5.5, the system call was  finally  removed.  Use  the  /proc/sys
       interface instead.

       Note  that  on  older kernels where this system call still exists, it is available only if the kernel was
       configured with the CONFIG_SYSCTL_SYSCALL option. Furthermore, glibc does not provide a wrapper for  this
       system call, necessitating the use of syscall(2).

BOGUES

       Les  noms  des objets peuvent varier d'une version à l'autre du noyau, ce qui rend cet appel système sans
       intérêt pour les applications.

       Tous les objets disponibles ne sont pas correctement documentés.

       Il n'est pas possible de changer de système d'exploitation en écrivant dans /proc/sys/kernel/ostype.

EXEMPLES

       #define _GNU_SOURCE
       #include <unistd.h>
       #include <sys/syscall.h>
       #include <string.h>
       #include <stdio.h>
       #include <stdlib.h>
       #include <linux/sysctl.h>

       int _sysctl(struct __sysctl_args *args );

       #define OSNAMESZ 100

       int
       main(void)
       {
           struct __sysctl_args args;
           char osname[OSNAMESZ];
           size_t osnamelth;
           int name[] = { CTL_KERN, KERN_OSTYPE };

           memset(&args, 0, sizeof(args));
           args.name = name;
           args.nlen = sizeof(name)/sizeof(name[0]);
           args.oldval = osname;
           args.oldlenp = &osnamelth;

           osnamelth = sizeof(osname);

       int
       main(void)
       {
           if (syscall(SYS__sysctl, &args) == -1) {
               perror("sysctl");
               exit(EXIT_FAILURE);
           }
           printf("Cette machine fonctionne avec %*s\n", osnamelth, osname);
           exit(EXIT_SUCCESS);
       }

VOIR AUSSI

       proc(5)

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>   et   David   Prévot
       <david@tilapin.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                                       SYSCTL(2)