Provided by: manpages-fr-dev_3.27fr1.4-1_all bug

NOM

       sysctl - Lire/ecrire les parametres systeme

SYNOPSIS

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

       int _sysctl(struct __sysctl_args *args);

DESCRIPTION

       N'utilisez pas cet appel syst`eme ! Consultez la section NOTES.

       L'appel  systeme _sysctl() lit et/ou ecrit les parametres du noyau. Par
       exemple, le nom d'hote  ou  le  nombre  maximal  de  fichiers  ouverts.
       L'argument a la forme

           struct __sysctl_args {
               int    *name;    /* tableau d'entiers decrivant la variable */
               int     nlen;    /* longueur de ce tableau */
               void   *oldval;  /* 0 ou adresse ou stocker l'ancienne valeur */
               size_t *oldlenp; /* espace disponible pour l'ancienne valeur,
                                   remplace par la taille reelle 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
       regroupee sous le repertoire /proc/sys, puis, si les valeurs  reclamees
       y sont trouvees, appelle les routines appropriees pour lire ou modifier
       les valeurs.

VALEUR RENVOY'EE

       _sysctl() renvoie 0 s'il reussit, et -1 s'il echoue  auquel  cas  errno
       contient le code d'erreur.

ERREURS

       EFAULT Demande de lecture de la valeur precedente en fournissant oldval
              non NULL, mais pas de place disponible dans oldlenp.

       ENOTDIR
              name non trouve.

       EPERM  Pas  de  droits  de  parcours  sur  l'un  des  << repertoires >>
              rencontres, ou pas de permission de lecture avec oldval non nul,
              ou encore pas de permission d'ecriture avec newval non nul.

CONFORMIT'E

       Cet appel systeme est specifique a Linux et ne devrait pas etre employe
       dans  les  programmes  destines a etre portables. Un appel sysctl() est
       present dans Linux depuis la version 1.3.57. Il existait dans  BSD 4.4.
       Seul  Linux  dispose  du  miroir  /proc/sys  et les conventions de noms
       d'objets different entre Linux et BSD 4.4, mais les declarations de  la
       fonction sysctl() sont identiques sur les deux systemes.

NOTES

       La  glibc  ne  fournit  pas  de  fonction autour de cet appel systeme ;
       utilisez syscall(2) pour l'appeler.

       Ou plutot... ne l'appelez pas : l'utilisation de cet appel systeme  est
       deconseillee  depuis  bien  longtemps,  et  il est tellemnt indesirable
       qu'il  disparaitra  bient^ot  dans  une  prochaine  version  du   noyau.
       Supprimez-le  des  a  present  de vos programmes ; Utilisez l'interface
       /proc/sys a la place.

BOGUES

       Les noms des objets peuvent varier d'une version a l'autre du noyau, ce
       qui rend cet appel systeme sans interet pour les applications.

       Tous les objets disponibles ne sont pas correctement documentes.

       Il  n'est pas possible de changer de systeme d'exploitation en ecrivant
       dans /proc/sys/kernel/ostype.

EXEMPLE

       #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(struct __sysctl_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  3.27  du  projet  man-pages
       Linux.  Une description du projet et des instructions pour signaler des
       anomalies      peuvent      etre       trouvees       a       l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

       Depuis  2010,  cette  traduction est maintenue a l'aide de l'outil po4a
       <URL:http://po4a.alioth.debian.org/>   par   l'equipe   de   traduction
       francophone        au        sein        du       projet       perkamon
       <URL:http://perkamon.alioth.debian.org/>.

       Christophe Blaess  <URL:http://www.blaess.fr/christophe/>  (1996-2003),
       Alain   Portal  <URL:http://manpagesfr.free.fr/>  (2003-2006).   Julien
       Cristau et l'equipe francophone de traduction de Debian (2006-2009).

       Veuillez  signaler  toute  erreur   de   traduction   en   ecrivant   a
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous pouvez toujours avoir acces a la version anglaise de  ce  document
       en utilisant la commande << man -L C <section> <page_de_man> >>.