summaryrefslogtreecommitdiffstats
path: root/man2/sysctl.2
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-24 04:52:22 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-24 04:52:22 +0000
commit3d08cd331c1adcf0d917392f7e527b3f00511748 (patch)
tree312f0d1e1632f48862f044b8bb87e602dcffb5f9 /man2/sysctl.2
parentAdding debian version 6.7-2. (diff)
downloadmanpages-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.2160
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)