COHERENT manpages
This page displays the COHERENT manpage for sysconf() [Get configurable system variables].
List of available manpages
Index
sysconf() -- System Call (libc)
Get configurable system variables
#include <unistd.h>
long sysconf(name)
int name;
sysconf() returns the value of the system limit or option identified by
name.
In the following table, the left column gives a symbolic constant to which
name can be set, and the right column gives the corresponding system
variable (as defined in <limits.h> and <unistd.h>) that
sysconf() reads and returns:
Name Variable
_SC_ARG_MAX ARG_MAX
_SC_CHILD_MAX CHILD_MAX
_SC_CLK_TCK CLK_TCK
_SC_NGROUPS_MAX NGROUPS_MAX
_SC_OPEN_MAX OPEN_MAX
_SC_PASS_MAX PASS_MAX
_SC_JOB_CONTROL _POSIX_JOB_CONTROL
_SC_SAVED_IDS _POSIX_SAVED_IDS
_SC_VERSION _POSIX_VERSION
The following describes the values returned in more detail:
ARG_MAX
Maximum number of bytes that can be occupied by a process's argument
list and environment.
CHILD_MAX
Number of processes a user can run simultaneously.
CLK_TCK
Length of a clock tick, in microseconds.
NGROUPS_MAX
The maximum number of groups to which a user can belong, in addition
to her primary group.
OPEN_MAX
The number of files a process can have open simultaneously.
PASS_MAX
The maximum length of a password. Please note that the constant
_SC_PASS_MAX is defined only for programs compiled for UNIX System V
release 4.
_POSIX_JOB_CONTROL
This is a Boolean flag that indicates whether the operating system
supports the POSIX job-control functions.
_POSIX_SAVED_IDS
This is a Boolean flag that indicates whether the operating system
permits each process to have a saved set-user ID and a saved set-group
ID.
_POSIX_VERSION
This is a long integer that encodes the four-digit year and two-digit
month of approval for the version of the POSIX standard supported by
the operating system. For example, 199009L indicates the version
approved in September of 1990.
The value of variable CLK_TCK can vary; you should not assume that it is a
compile-time constant.
If name is an invalid value, sysconf() returns -1 and set errno to an
appropriate value. If sysconf() fails due to a value of name that is not
defined on the system, it returns -1 without setting errno.
Example
At the time of this writing (August 1994), the program
#include <unistd.h>
main()
{
printf("_SC_ARG_MAX: %d\n", sysconf(_SC_ARG_MAX));
printf("_SC_CHILD_MAX: %d\n", sysconf(_SC_CHILD_MAX));
printf("_SC_CLK_TCK: %d\n", sysconf(_SC_CLK_TCK));
printf("_SC_NGROUPS_MAX: %d\n", sysconf(_SC_NGROUPS_MAX));
printf("_SC_OPEN_MAX: %d\n", sysconf(_SC_OPEN_MAX));
printf("_SC_JOB_CONTROL: %d\n", sysconf(_SC_JOB_CONTROL));
printf("_SC_SAVED_IDS: %d\n", sysconf(_SC_SAVED_IDS));
printf("_SC_VERSION: %d\n", sysconf(_SC_VERSION));
}
returns the following values:
_SC_ARG_MAX: 5120
_SC_CHILD_MAX: 25
_SC_CLK_TCK: 100
_SC_NGROUPS_MAX: 32
_SC_OPEN_MAX: 60
_SC_JOB_CONTROL: 0
_SC_SAVED_IDS: 1
_SC_VERSION: 199009
See Also
libc,
unistd.h
POSIX Standard, §4.8.1
Notes
Programs can use the appropriate #ifndef guards to control whether they use
sysconf() or a symbol from <limits.h> for each kind of limit. For
example:
#include <unistd.h>
#include <limits.h>
#ifdef _SC_OPEN_MAX
max = sysconf (_SC_OPEN_MAX);
#elif defined (OPEN_MAX)
max = OPEN_MAX;
#else
/* either complain, or make some rational assumption, e.g. */
#error Open file descriptor limits cannot be determined
#endif