Dans ce billet, nous allons voir comment afficher certaines informations obtenues avec la fonction [sysctlbyname(3)|http://www.freebsd.org/cgi/man.cgi?query=sysctl&sektion=3&manpath=FreeBSD+10.0-RELEASE].
!!!Exemple n°1
///
/sbin/sysctl vfs.usermount
vfs.usermount: 1
///
En C, on peut écrire un programme relativement simple (@@sysctl-01.c@@), qui va afficher uniquement le résultat.
///
gcc sysct-01.c -o sysctl-01 -Wall -W -lc
./sysctl-01
1
///
!!!Exemple n°2
Si l’on souhaite afficher une chaîne de caractères.
///
/sbin/sysctl kern.ostype
kern.ostype: FreeBSD
///
Avec le programme @@sysctl-02.c@@, on procède de la manière suivante :
///
gcc sysct-02.c -o sysctl-02 -Wall -W -lc
./sysctl-02
FreeBSD
///
!!!Exemple n°3
Maintenant, si plusieurs valeurs doivent être affichées.
///
/sbin/sysctl hw.acpi.supported_sleep_state
hw.acpi.supported_sleep_state: S3 S4 S5///
Le programme @@sysctl-03.c@@ affiche ces informations de cette manière :
///
gcc sysct-03.c -o sysctl-03 -Wall -W -lc
./sysctl-03
S3
S4
S5
///
!!!Exemple n°4
Au lieu d’avoir une chaîne de caractères, on a une série d’entiers.
///
/sbin/sysctl kern.cp_times
kern.cp_times: 889624 1836 116735 3507 4424229
///
Le programme @@sysctl-04.c@@ affiche tout ceci, de cette façon :
///
gcc sysct-04.c -o sysctl-04 -Wall -W -lc
./sysctl-04
Values: 889624 1836 116735 3507 4424229
Max: 4424229
///
Voilà, on peut désormais s’inspirer de ces exemples, pour apporter des »patches » aux programmes trop orientés Linux.