UNISTD.H(3HEAD)                    Headers                   UNISTD.H(3HEAD)
NAME
       unistd.h, unistd - standard symbolic constants and types
SYNOPSIS
       #include <unistd.h>
DESCRIPTION
       The <
unistd.h> header defines the symbolic constants and structures
       which are not already defined or declared in some other header. The
       contents of this header  are shown below.
   Version Test Macros
       The following symbolic constants are defined (with fixed values):       
_POSIX_VERSION                             Integer value indicating version of the POSIX
                             standard (C language binding).  See                             
standards(7).       
_POSIX2_VERSION                             Integer value indicating version of the POSIX.2
                             standard (Commands).       
_POSIX2_C_VERSION                             Integer value indicating version of the POSIX.2
                             standard (C language binding).       
_XOPEN_VERSION                             Integer value indicating version of the XPG to
                             which system conforms.       
_XOPEN_XCU_VERSION                             Integer value indicating the version of the XCU
                             specification to which the implementation
                             conforms. If this constant is not defined, use
                             the 
sysconf(3C) function to determine which
                             features are supported. This constant is not
                             defined for the SUSv3 environment.
   Mandatory Symbolic Constants
       The following symbolic constants, if defined in <
unistd.h>, have a
       value of -1, 0, or greater, unless otherwise specified below. If
       these are undefined, the 
fpathconf(2), 
pathconf(2), or 
sysconf(3C)       functions can be used to determine whether the option is provided for
       a particular invocation of the application.
       If a symbolic constant is defined with the value -1, the option is
       not supported. Headers, data types, and function interfaces required
       only for the option need not be supplied. An application that
       attempts to use anything associated only with the option is
       considered to be requiring an extension.
       If a symbolic constant is defined with a value greater than zero, the
       option is always supported when the application is executed. All
       headers, data types, and functions are present and operate as
       specified.
       If a symbolic constant is defined with the value zero, all headers,
       data types, and functions are present. The application can check at
       runtime to see whether the option is supported by calling       
fpathconf(), 
pathconf(), or 
sysconf() with the indicated 
name       parameter.
       Unless explicitly specified otherwise, the behavior of functions
       associated with an unsupported option is unspecified, and an
       application that uses such functions without first checking       
fpathconf(), 
pathconf(), or 
sysconf() is considered to be requiring
       an extension.       
_POSIX_ADVISORY_INFO           Implementation supports the Advisory Information option.       
_POSIX_ASYNCHRONOUS_IO           Implementation supports the Asynchronous Input and Output option.       
_POSIX_BARRIERS           Implementation supports the Barriers option.       
_POSIX_CLOCK_SELECTION           Implementation supports the Clock Selection option.       
_POSIX_CPUTIME           Implementation supports the Process CPU-Time Clocks option.       
_POSIX_FSYNC           Implementation supports the File Synchronisation option.       
_POSIX_IPV6           Implementation supports the IPv6 option.       
_POSIX_JOB_CONTROL           Implementation supports job control.       
_POSIX_MAPPED_FILES           Implementation supports the Memory Mapped Files option.       
_POSIX_MEMLOCK           Implementation supports the Process Memory Locking option.       
_POSIX_MEMLOCK_RANGE           Implementation supports the Range Memory Locking option.       
_POSIX_MEMORY_PROTECTION           Implementation supports the Memory Protection option.       
_POSIX_MESSAGE_PASSING           Implementation supports the Message Passing option.       
_POSIX_MONOTONIC_CLOCK           Implementation supports the Monotonic Clock option.       
_POSIX_PRIORITY_SCHEDULING           Implementation supports the Process Scheduling option.       
_POSIX_RAW_SOCKETS           Implementation supports the Raw Sockets option.       
_POSIX_READER_WRITER_LOCKS           Implementation supports the Read-Write Locks option.       
_POSIX_REALTIME_SIGNALS           Implementation supports the Realtime Signals Extension option.       
_POSIX_REGEXP           Implementation supports the Regular Expression Handling option.       
_POSIX_SAVED_IDS           The exec functions (see 
exec(2)) save the effective user and
           group.       
_POSIX_SEMAPHORES           Implementation supports the Semaphores option.       
_POSIX_SHARED_MEMORY_OBJECTS           Implementation supports the Shared Memory Objects option.       
_POSIX_SHELL           Implementation supports the POSIX shell.       
_POSIX_SPAWN           Implementation supports the Spawn option.       
_POSIX_SPIN_LOCKS           Implementation supports the Spin Locks option.       
_POSIX_SPORADIC_SERVER           Implementation supports the Process Sporadic Server option.       
_POSIX_SYNCHRONIZED_IO           Implementation supports the Synchronized Input and Output option.       
_POSIX_THREAD_ATTR_STACKADDR           Implementation supports the thread stack address attribute
           option.       
_POSIX_THREAD_ATTR_STACKSIZE           Implementation supports the thread stack size attribute option.       
_POSIX_THREAD_CPUTIME           Implementation supports the Thread CPU-Time Clocks option.       
_POSIX_THREAD_PROCESS_SHARED           Implementation supports the process-shared synchronization
           option.       
_POSIX_THREAD_SAFE_FUNCTIONS           Implementation supports the thread-safe functions option.       
_POSIX_THREAD_SPORADIC_SERVER           Implementation supports the Thread Sporadic Server option.       
_POSIX_THREADS           Implementation supports the threads option.       
_POSIX_TIMERS           Implementation supports the Timers option.       
_POSIX_TIMEOUTS           Implementation supports the Timeouts option.       
_POSIX_TRACE           Implementation supports the Trace option.       
_POSIX_TRACE_EVENT_FILTER           Implementation supports the Trace Event Filter option.       
_POSIX_TRACE_INHERIT           Implementation supports the Trace Inherit option.       
_POSIX_TRACE_LOG           Implementation supports the Trace Log option.       
_POSIX_TYPED_MEMORY_OBJECTS           Implementation supports the Typed Memory Objects option.       
_POSIX_V6_ILP32_OFF32           Implementation provides a C-language compilation environment with
           32-bit 
int, 
long, and 
pointer types and an 
off_t type using at
           least 64 bits.       
_POSIX_V6_ILP32_OFFBIG           Implementation provides a C-language compilation environment with
           32-bit 
int, long, and 
pointer types and an 
off_t type using at
           least 64 bits.       
_POSIX_V6_LP64_OFF64           Implementation provides a C-language compilation environment with
           32-bit 
int and 64-bit 
long, 
pointer, and 
off_t types.       
_POSIX_V6_LPBIG_OFFBIG           Implementation provides a C-language compilation environment with
           an 
int type using at least 32 bits and 
long, 
pointer, and 
off_t           types using at least 64 bits.       
_POSIX_XOPEN_STREAMS           Implementation supports the XSI STREAMS Option Group.       
_POSIX2_C_BIND           Implementation supports the C Language Binding option.       
_POSIX2_C_DEV           Implementation supports the C Language Development Utilities
           option.       
_POSIX2_CHAR_TERM           Implementation supports at least one terminal type.       
_POSIX2_LOCALEDEF           Implementation supports the creation of locales by the           
localedef(1) utility.       
_POSIX2_PBS           Implementation supports the Batch Environment Services and
           Utilities option.       
_POSIX2_PBS_ACCOUNTING           Implementation supports the Batch Accounting option.       
_POSIX2_PBS_CHECKPOINT           Implementation supports the Batch Checkpoint/Restart option.       
_POSIX2_PBS_LOCATE           Implementation supports the Locate Batch Job Request option.       
_POSIX2_PBS_MESSAGE           Implementation supports the Batch Job Message Request option.       
_POSIX2_PBS_TRACK           Implementation supports the Track Batch Job Request option.       
_POSIX2_SW_DEV           Implementation supports the Software Development Utilities
           option.       
_POSIX2_UPE           Implementation supports the User Portability Utilities option.       
_XBS5_ILP32_OFF32           Implementation provides a C-language compilation environment with
           32-bit 
int, 
long, 
pointer and 
off_t types.       
_XBS5_ILP32_OFFBIG           Implementation provides a C-language compilation environment with
           32-bit 
int, 
long and 
pointer types and an 
off_t type using at
           least 64 bits.       
_XBS5_LP64_OFF64           Implementation provides a C-language compilation environment with
           32-bit 
int and 64-bit 
long, 
pointer and 
off_t types.       
_XBS5_LPBIG_OFFBIG           Implementation provides a C-language compilation environment with
           an 
int type using at least 32 bits and 
long, 
pointer and 
off_t           types using at least 64 bits.       
_XOPEN_ENH_I18N           Implementation supports the Issue 4, Version 2 Enhanced
           Internationalization Feature Group.       
_XOPEN_LEGACY           Implementation supports the Legacy Feature Group.       
_XOPEN_REALTIME           Implementation supports the X/Open Realtime Feature Group.       
_XOPEN_SHM           Implementation supports the Issue 4, Version 2 Shared Memory
           Feature Group.       
_XOPEN_UNIX           X/Open CAE Specification, January 1997, System Interfaces and
           Headers, Issue 5 (ISBN: 1-85912-181-0, C606).       
_XOPEN_XPG3           X/Open Specification, February 1992, System Interfaces and
           Headers, Issue 3 (ISBN: 1-872630-37-5, C212); this specification
           was formerly X/Open Portability Guide, Issue 3, Volume 2, January
           1989, XSI System Interface and Headers (ISBN: 0-13-685843-0,
           XO/XPG/89/003).       
_XOPEN_XPG4           X/Open CAE Specification, July 1992, System Interfaces and
           Headers, Issue 4 (ISBN: 1-872630-47-2, C202).   
Execution-time Symbolic Constants       If any of the following constants are not defined in the header       
<unistd.h>, the value varies depending on the file to which it is
       applied.
       If any of the following constants are defined to have value -1 in the
       header 
<unistd.h>, the implementation will not provide the option on
       any file; if any are defined to have a value other than -1 in the
       header 
<unistd.h>, the implementation will provide the option on all
       applicable files.
       All of the following constants, whether defined in 
<unistd.h> or not,
       can be queried with respect to a specific file using the 
pathconf()       or 
fpathconf() functions.       
_POSIX_ASYNC_IO                          Asynchronous input or output operations can be
                          performed for the associated file.       
_POSIX_PRIO_IO                          Prioritized input or output operations can be
                          performed for the associated file.       
_POSIX_SYNC_IO                          Synchronized input or output operations can be
                          performed for the associated file.
   Constants for Functions
       The following constant is defined:       
NULL               Null pointer.
       The following symbolic constants are defined for the 
access(2)       function:       
R_OK               Test for read permission.       
W_OK               Test for write permission.       
X_OK               Test for execute (search) permission.       
F_OK               Test for existence of file.
       The constants 
F_OK, 
R_OK, 
W_OK, and 
X_OK, and the expressions       
R_OK|W_OK, 
R_OK|X_OK, and 
R_OK|W_OK|X_OK all have distinct values.
       The following symbolic constants are defined for the  
lockf(3C)       function:       
F_ULOCK                  Unlock a previously locked region.       
F_LOCK                  Lock a region for exclusive use.       
F_TLOCK                  Test and lock a region for exclusive use.       
F_TEST                  Test a region for other processes locks.
       The following symbolic constants are defined for the  
lseek(2) and       
fcntl(2) functions (they have distinct values):       
SEEK_SET                   Set file offset to 
offset.       
SEEK_CUR                   Set file offset to current plus 
offset.       
SEEK_END                   Set file offset to EOF plus 
offset.
       The following symbolic constants are defined for the 
confstr(3C)       function for both SPARC and x86:       
_CS_LFS64_CFLAGS                      _CS_LFS64_LDFLAGS       _CS_LFS64_LIBS                        _CS_LFS64_LINTFLAGS       _CS_LFS_CFLAGS                        _CS_LFS_LDFLAGS       _CS_LFS_LIBS                          _CS_LFS_LINTFLAGS       _CS_PATH                              _CS_POSIX_V6_ILP32_OFF32_CFLAGS       _CS_POSIX_V6_ILP32_OFF32_LDFLAGS      _CS_POSIX_V6_ILP32_OFF32_LIBS       _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS    _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS       _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS     _CS_POSIX_V6_ILP32_OFFBIG_LIBS       _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS   _CS_POSIX_V6_WIDTH_RESTRICTED_ENV       _CS_XBS5_ILP32_OFF32_CFLAGS           _CS_XBS5_ILP32_OFF32_LDFLAGS       _CS_XBS5_ILP32_OFF32_LIBS             _CS_XBS5_ILP32_OFF32_LINTFLAGS       _CS_XBS5_ILP32_OFFBIG_CFLAGS          _CS_XBS5_ILP32_OFFBIG_LDFLAGS       _CS_XBS5_ILP32_OFFBIG_LIBS            _CS_XBS5_ILP32_OFFBIG_LINTFLAGS       The followwing symbolic constants are defined for the 
confstr()       function for SPARC only:       
_CS_POSIX_V6_LP64_OFF64_CFLAGS     _CS_POSIX_V6_LP64_OFF64_LDFLAGS       _CS_POSIX_V6_LP64_OFF64_LIBS       _CS_POSIX_V6_LP64_OFF64_LINTFLAGS       _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS   _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS       _CS_POSIX_V6_LPBIG_OFFBIG_LIBS     _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS       _CS_XBS5_LP64_OFF64_CFLAGS         _CS_XBS5_LP64_OFF64_LDFLAGS       _CS_XBS5_LP64_OFF64_LIBS           _CS_XBS5_LP64_OFF64_LINTFLAGS       _CS_XBS5_LPBIG_OFFBIG_CFLAGS       _CS_XBS5_LPBIG_OFFBIG_LDFLAGS       _CS_XBS5_LPBIG_OFFBIG_LIBS         _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS       The following symbolic constants are defined for the 
sysconf(3C)       function:       
_SC_2_C_BIND                       _SC_2_C_DEV       _SC_2_C_VERSION                    _SC_2_FORT_DEV       _SC_2_FORT_RUN                     _SC_2_LOCALEDEF       _SC_2_PBS                          _SC_2_PBS_ACCOUNTING       _SC_2_PBS_CHECKPOINT               _SC_2_PBS_LOCATE       _SC_2_PBS_MESSAGE                  _SC_2_PBS_TRACK       _SC_2_SW_DEV                       _SC_2_UPE       _SC_2_VERSION                      _SC_ADVISORY_INFO       _SC_AIO_LISTIO_MAX                 _SC_AIO_MAX       _SC_AIO_PRIO_DELTA_MAX             _SC_ARG_MAX       _SC_ASYNCHRONOUS_IO                _SC_ATEXIT_MAX       _SC_AVPHYS_PAGES                   _SC_BARRIERS       _SC_BC_BASE_MAX                    _SC_BC_DIM_MAX       _SC_BC_SCALE_MAX                   _SC_BC_STRING_MAX       _SC_CHILD_MAX                      _SC_CLK_TCK       _SC_CLOCK_SELECTION                _SC_COLL_WEIGHTS_MAX       _SC_CPUTIME                        _SC_DELAYTIMER_MAX       _SC_EXPR_NEST_MAX                  _SC_FSYNC       _SC_GETGR_R_SIZE_MAX               _SC_GETPW_R_SIZE_MAX       _SC_HOST_NAME_MAX                  _SC_IOV_MAX       _SC_IPV6                           _SC_JOB_CONTROL       _SC_LINE_MAX                       _SC_LOGIN_NAME_MAX       _SC_LOGNAME_MAX                    _SC_MAPPED_FILES       _SC_MEMLOCK                        _SC_MEMLOCK_RANGE       _SC_MEMORY_PROTECTION              _SC_MESSAGE_PASSING       _SC_MONOTONIC_CLOCK                _SC_MQ_OPEN_MAX       _SC_MQ_PRIO_MAX                    _SC_NGROUPS_MAX       _SC_NPROCESSORS_CONF               _SC_NPROCESSORS_ONLN       _SC_OPEN_MAX                       _SC_PAGESIZE       _SC_PAGE_SIZE                      _SC_PASS_MAX       _SC_PHYS_PAGES                     _SC_PRIORITIZED_IO       _SC_PRIORITY_SCHEDULING            _SC_RAW_SOCKETS       _SC_READER_WRITER_LOCKS            _SC_REALTIME_SIGNALS       _SC_REGEXP                         _SC_RE_DUP_MAX       _SC_RTSIG_MAX                      _SC_SAVED_IDS       _SC_SEMAPHORES                     _SC_SEM_NSEMS_MAX       _SC_SEM_VALUE_MAX                  _SC_SHARED_MEMORY_OBJECTS       _SC_SHELL                          _SC_SIGQUEUE_MAX       _SC_SPAWN                          _SC_SPIN_LOCKS       _SC_SPORADIC_SERVER                _SC_SS_REPL_MAX       _SC_STREAM_MAX                     _SC_SYMLOOP_MAX       _SC_SYNCHRONIZED_IO                _SC_THREAD_ATTR_STACKADDR       _SC_THREAD_ATTR_STACKSIZE          _SC_THREAD_CPUTIME       _SC_THREAD_DESTRUCTOR_ITERATIONS   _SC_THREAD_KEYS_MAX       _SC_THREAD_PRIO_INHERIT            _SC_THREAD_PRIO_PROTECT       _SC_THREAD_PRIORITY_SCHEDULING     _SC_THREAD_PROCESS_SHARED       _SC_THREAD_SPORADIC_SERVER         _SC_THREADS       _SC_THREAD_SAFE_FUNCTIONS          _SC_THREAD_STACK_MIN       _SC_THREAD_THREADS_MAX             _SC_TIMEOUTS       _SC_TIMER_MAX                      _SC_TIMERS       _SC_TRACE                          _SC_TRACE_EVENT_FILTER       _SC_TRACE_EVENT_NAME_MAX           _SC_TRACE_INHERIT       _SC_TRACE_LOG                      _SC_TRACE_NAME_MAX       _SC_TRACE_SYS_MAX                  _SC_TRACE_USER_EVENT_MAX       _SC_TTY_NAME_MAX                   _SC_TYPED_MEMORY_OBJECTS       _SC_TZNAME_MAX                     _SC_V6_ILP32_OFF32       _SC_V6_ILP32_OFFBIG                _SC_V6_LP64_OFF64       _SC_V6_LPBIG_OFFBIG                _SC_VERSION       _SC_XBS5_ILP32_OFF32               _SC_XBS5_ILP32_OFFBIG       _SC_XBS5_LP64_OFF64                _SC_XBS5_LPBIG_OFFBIG       _SC_XOPEN_CRYPT                    _SC_XOPEN_ENH_I18N       _SC_XOPEN_SHM                      _SC_XOPEN_STREAMS       _SC_XOPEN_UNIX                     _SC_XOPEN_VERSION       _SC_XOPEN_XCU_VERSION       The constants 
_SC_PAGESIZE and 
_SC_PAGE_SIZE can be defined to have
       the same value.
       The following symbolic constants are defined for the 
fpathconf(2)       function:       
_PC_2_SYMLINKS          _PC_ALLOC_SIZE_MIN       _PC_ASYNC_IO            _PC_CHOWN_RESTRICTED       _PC_FILESIZEBITS        _PC_LINK_MAX       _PC_MAX_CANON           _PC_MAX_INPUT       _PC_NAME_MAX            _PC_NO_TRUNC       _PC_PATH_MAX            _PC_PIPE_BUF       _PC_PRIO_IO             _PC_REC_INCR_XFER_SIZE       _PC_REC_MAX_XFER_SIZE   _PC_REC_MIN_XFER_SIZE       _PC_REC_XFER_ALIGN      _PC_SYMLINK_MAX       _PC_SYNC_IO             _PC_TIMESTAMP_RESOLUTION       _PC_VDISABLE            _PC_XATTR_ENABLED       _PC_XATTR_EXISTS       The following symbolic constants are defined for file streams:       
STDIN_FILENO                        File number (
0) of 
stdin.       
STDOUT_FILENO                        File number (
1) of 
stout.       
STDERR_FILENO                        File number (
2) of 
stderr.
       The following pathnames are defined:       
GF_PATH                  Pathname of the group file.       
PF_PATH                  Pathname of the passwd file.
ATTRIBUTES
       See 
attributes(7) for descriptions of the following attributes:
       +--------------------+-------------------+
       |  ATTRIBUTE TYPE    |  ATTRIBUTE VALUE  |
       +--------------------+-------------------+
       |Interface Stability | Committed         |
       +--------------------+-------------------+
       |Standard            | See 
standards(7). |
       +--------------------+-------------------+
SEE ALSO
       access(2), 
exec(2), 
fcntl(2), 
fpathconf(2), 
lseek(2), 
confstr(3C),       
lockf(3C), 
sysconf(3C), 
termios(3C), 
termio(4I), 
group(5), 
passwd(5),       
attributes(7), 
standards(7)                              September 1, 2009              UNISTD.H(3HEAD)