Caution: This version of this document is no longer maintained. For the latest documentation, see


Return the value of a configurable system limit


#include <unistd.h>
#include <limits.h>

long sysconf( int name );


The name of the limit that you want to get; see below.



Use the -l c option to qcc to link against this library. This library is usually included automatically.


The sysconf() function returns the value of a configurable system limit indicated by name.

Configurable limits are defined in <confname.h>, and contain at least the following values:

Maximum length of arguments for the exec*() functions, in bytes, including environment data.
Maximum number of simultaneous processes per real user ID.
The number of intervals per second used to express the value in type clock_t.
The maximum number of simultaneous supplementary group IDs per process.
Maximum number of files that one process can have open at any given time.
If this variable is defined, then job control is supported.
The default size of a thread's guard area.
If this variable is defined, then each process has a saved set-user ID and a saved set-group ID.
The current POSIX version that is currently supported. A value of 198808L indicates the August (08) 1988 standard, as approved by the IEEE Standards Board.


The requested configurable system limit. If name isn't defined for the system, -1 is returned.


#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <unistd.h>

int main( void )
    printf( "_SC_ARG_MAX = %ld\n",
         sysconf( _SC_ARG_MAX ) );
    return EXIT_SUCCESS;


POSIX 1003.1

Cancellation point No
Interrupt handler No
Signal handler Yes
Thread Yes

See also:

confstr(), errno, pathconf()

getconf in the Utilities Reference

Understanding System Limits chapter of the Neutrino User's Guide