diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-24 04:52:22 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-24 04:52:22 +0000 |
commit | 3d08cd331c1adcf0d917392f7e527b3f00511748 (patch) | |
tree | 312f0d1e1632f48862f044b8bb87e602dcffb5f9 /man2/sysctl.2 | |
parent | Adding debian version 6.7-2. (diff) | |
download | manpages-3d08cd331c1adcf0d917392f7e527b3f00511748.tar.xz manpages-3d08cd331c1adcf0d917392f7e527b3f00511748.zip |
Merging upstream version 6.8.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'man2/sysctl.2')
-rw-r--r-- | man2/sysctl.2 | 160 |
1 files changed, 0 insertions, 160 deletions
diff --git a/man2/sysctl.2 b/man2/sysctl.2 deleted file mode 100644 index 082545e..0000000 --- a/man2/sysctl.2 +++ /dev/null @@ -1,160 +0,0 @@ -.\" Copyright (C) 1996 Andries Brouwer (aeb@cwi.nl) -.\" -.\" SPDX-License-Identifier: Linux-man-pages-copyleft -.\" -.\" Written 11 April 1996 by Andries Brouwer <aeb@cwi.nl> -.\" 960412: Added comments from Stephen Tweedie -.\" Modified Tue Oct 22 22:28:41 1996 by Eric S. Raymond <esr@thyrsus.com> -.\" Modified Mon Jan 5 20:31:04 1998 by aeb. -.\" -.TH sysctl 2 2023-10-31 "Linux man-pages 6.7" -.SH NAME -sysctl \- read/write system parameters -.SH SYNOPSIS -.nf -.B #include <unistd.h> -.B #include <linux/sysctl.h> -.P -.BI "[[deprecated]] int _sysctl(struct __sysctl_args *" args ); -.fi -.SH DESCRIPTION -.B This system call no longer exists on current kernels! -See NOTES. -.P -The -.BR _sysctl () -call reads and/or writes kernel parameters. -For example, the hostname, -or the maximum number of open files. -The argument has the form -.P -.in +4n -.EX -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 */ -}; -.EE -.in -.P -This call does a search in a tree structure, possibly resembling -a directory tree under -.IR /proc/sys , -and if the requested item is found calls some appropriate routine -to read or modify the value. -.SH RETURN VALUE -Upon successful completion, -.BR _sysctl () -returns 0. -Otherwise, a value of \-1 is returned and -.I errno -is set to indicate the error. -.SH ERRORS -.TP -.B EACCES -.TQ -.B EPERM -No search permission for one of the encountered "directories", -or no read permission where -.I oldval -was nonzero, or no write permission where -.I newval -was nonzero. -.TP -.B EFAULT -The invocation asked for the previous value by setting -.I oldval -non-NULL, but allowed zero room in -.IR oldlenp . -.TP -.B ENOTDIR -.I name -was not found. -.SH STANDARDS -Linux. -.SH HISTORY -Linux 1.3.57. -Removed in Linux 5.5, glibc 2.32. -.P -It originated in -4.4BSD. -Only Linux has the -.I /proc/sys -mirror, and the object naming schemes differ between Linux and 4.4BSD, -but the declaration of the -.BR sysctl () -function is the same in both. -.SH 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 -.I /proc/sys -interface instead. -.P -Note that on older kernels where this system call still exists, -it is available only if the kernel was configured with the -.B CONFIG_SYSCTL_SYSCALL -option. -Furthermore, glibc does not provide a wrapper for this system call, -necessitating the use of -.BR syscall (2). -.SH BUGS -The object names vary between kernel versions, -making this system call worthless for applications. -.P -Not all available objects are properly documented. -.P -It is not yet possible to change operating system by writing to -.IR /proc/sys/kernel/ostype . -.SH EXAMPLES -.\" SRC BEGIN (sysctl.c) -.EX -#define _GNU_SOURCE -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <sys/syscall.h> -#include <unistd.h> -\& -#include <linux/sysctl.h> -\& -#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0])) -\& -int _sysctl(struct __sysctl_args *args); -\& -#define OSNAMESZ 100 -\& -int -main(void) -{ - int name[] = { CTL_KERN, KERN_OSTYPE }; - char osname[OSNAMESZ]; - size_t osnamelth; - struct __sysctl_args args; -\& - memset(&args, 0, sizeof(args)); - args.name = name; - args.nlen = ARRAY_SIZE(name); - args.oldval = osname; - args.oldlenp = &osnamelth; -\& - osnamelth = sizeof(osname); -\& - if (syscall(SYS__sysctl, &args) == \-1) { - perror("_sysctl"); - exit(EXIT_FAILURE); - } - printf("This machine is running %*s\en", (int) osnamelth, osname); - exit(EXIT_SUCCESS); -} -.EE -.\" SRC END -.SH SEE ALSO -.BR proc (5) |