| Hauptindex | Abschnitt 2 | Optionen |
#include <linux/unistd.h>
#include <linux/sysctl.h>
_syscall1(int, _sysctl, struct __sysctl_args *, args);
int _sysctl(struct __sysctl_args *args);
struct __sysctl_args {
int *name; /* ganzzahliger Vektor, der eine Variable
beschreibt */
int nlen; /* Länge dieses Vektors */
void *oldval; /* 0 oder Adresse, wo der alte Wert gespeichert
werden soll */
size_t *oldlenp; /* freier Raum für den alten Wert, überschrieben
durch die aktuelles Größe des alten Wertes */
void *newval; /* 0 oder Adresse des neuen Wertes */
size_t newlen; /* Länge des neuen Wertes */
};
Dieser Aufruf sucht in einer Baumstruktur, die möglicherweise einer Verzeichnisstruktur unter /proc/sys ähnelt, und ruft, wenn der geforderte Punkt gefunden wird, eine entsprechende Routine auf, um den Wert zu lesen oder zu verändern.
#include <linux/unistd.h> #include <linux/types.h> #include <linux/sysctl.h>_syscall1(int, _sysctl, struct __sysctl_args *, args); int sysctl(int *name, int nlen, void *oldval, size_t *oldlenp, void *newval, size_t newlen) { struct __sysctl_args args={name,nlen,oldval,oldlenp,newval,newlen}; return _sysctl(&args); }
#define SIZE(x) sizeof(x)/sizeof(x[0]) #define OSNAMESZ 100
char osname[OSNAMESZ]; int osnamelth; int name[] = { CTL_KERN, KERN_OSTYPE };
main(){ osnamelth = SIZE(osname); if (sysctl(name, SIZE(name), osname, &osnamelth, 0, 0)) perror("sysctl"); else printf("This machine is running %*s\n", osnamelth, osname); return 0; }
| ENOTDIR | |
| name wurde nicht gefunden. | |
| EPERM | Keine Such-Berechtigung für eines der auftretenden `Verzeichnisse', oder keine Leseberechtigung wenn oldval nicht null war, oder keine Schreibberechtigung wenn newval nicht null war. |
| EFAULT | Der Aufruf fragte nach dem vorherigen Wert durch setzen von oldval auf nicht null, aber erlaubte Null Raum in oldlenp. |
| 24. Juni 1996 | SYSCTL (2) | Linux 1.3.85 |
| Hauptindex | Abschnitt 2 | Optionen |
Bitte richten Sie Ihre Kommentare zu diesem Handbuch Seite Service, Ben Bullock. Privacy policy.
| “ | Our grievance is not just against Unix itself, but against the cult of Unix zealots who defend and nurture it. They take the heat, disease, and pestilence as givens, and, as ancient shamans did, display their wounds, some self-inflicted, as proof of their power and wizardry. We aim, through bluntness and humor, to show them that they pray to a tin god, and that science, not religion, is the path to useful and friendly technology. | ” |
| — The Unix Haters' handbook | ||