| sysctl | Début | Suivant | Sommaire | Préc.page.lue | Accueil |
| NOM | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
| SYNOPSIS | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
#include <unistd.h>
#include <linux/sysctl.h> int _sysctl(struct __sysctl_args *args);
| DESCRIPTION | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
struct __sysctl_args {
int *name; /* integer vector describing variable */
int nlen; /* length of this vector */
void *oldval; /* 0 or address where to store old value */
size_t *oldlenp; /* available room for old value,
overwritten by actual size of old value */
void *newval; /* 0 or address of new value */
size_t newlen; /* size of new value */
};
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 | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
| ERREURS | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
| CONFORMITÉ | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
| NOTES | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
Ou plutôt... ne l'appelez pas : l'utilisation de cet appel système est déconseillée depuis bien longtemps, et il est tellemnt indésirable qu'il disparaitra bientôt dans une prochaine version du noyau. Supprimez-le dès à présent de vos programmes ; Utilisez l'interface /proc/sys à la place.
| BOGUES | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
Tous les objets disponibles ne sont pas proprement documentés.
Il n'est pas possible de changer de système d'exploitation en écrivant dans /proc/sys/kernel/ostype.
| EXEMPLE | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
#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 = SIZE(osname);
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 | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
| TRADUCTION | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 15 octobre 1996 et révisée le 8 janvier 2008.
L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 2 sysctl ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.
| Sommaire | Début | Suivant | Sommaire | Préc.page.lue | Accueil |
| Table des mots clés | Début | Suivant | Sommaire | Préc.page.lue | Accueil |