


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 bind-
                           ing).  See standards(5).


     _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 bind-
                           ing).


     _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  con-
                           stant   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 speci-
     fied below. If these are undefined, the fpathconf(2),  path-
     conf(2),  or  sysconf(3C) functions can be used to determine
     whether the option is provided for a  particular  invocation
     of the application.




SunOS 5.11          Last change: 16 Dec 2003                    1






Headers                                           unistd.h(3HEAD)



     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  sup-
     plied.  An application that attempts to use anything associ-
     ated 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 applica-
     tion can check at runtime to see whether the option is  sup-
     ported by calling fpathconf(), pathconf(), or sysconf() with
     the indicated name parameter.


     Unless explicitly specified otherwise, the behavior of func-
     tions  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  Out-
         put 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.



SunOS 5.11          Last change: 16 Dec 2003                    2






Headers                                           unistd.h(3HEAD)



     _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.






SunOS 5.11          Last change: 16 Dec 2003                    3






Headers                                           unistd.h(3HEAD)



     _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.



SunOS 5.11          Last change: 16 Dec 2003                    4






Headers                                           unistd.h(3HEAD)



     _POSIX_SPORADIC_SERVER

         Implementation  supports  the  Process  Sporadic  Server
         option.


     _POSIX_SYNCHRONIZED_IO

         Implementation supports the Synchronized Input and  Out-
         put option.


     _POSIX_THREAD_ATTR_STACKADDR

         Implementation supports the thread stack address  attri-
         bute 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  synchroniza-
         tion 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.




SunOS 5.11          Last change: 16 Dec 2003                    5






Headers                                           unistd.h(3HEAD)



     _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



SunOS 5.11          Last change: 16 Dec 2003                    6






Headers                                           unistd.h(3HEAD)



         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 Util-
         ities 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



SunOS 5.11          Last change: 16 Dec 2003                    7






Headers                                           unistd.h(3HEAD)



         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  Utili-
         ties 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.



SunOS 5.11          Last change: 16 Dec 2003                    8






Headers                                           unistd.h(3HEAD)



     _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  Inter-
         faces 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).






SunOS 5.11          Last change: 16 Dec 2003                    9






Headers                                           unistd.h(3HEAD)



  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 implemen-
     tation 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.






SunOS 5.11          Last change: 16 Dec 2003                   10






Headers                                           unistd.h(3HEAD)



     The constants F_OK, R_OK, W_OK, and X_OK,  and  the  expres-
     sions R_OK|W_OK, R_OK|X_OK, and R_OK|W_OK|X_OK all have dis-
     tinct 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



SunOS 5.11          Last change: 16 Dec 2003                   11






Headers                                           unistd.h(3HEAD)



     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



SunOS 5.11          Last change: 16 Dec 2003                   12






Headers                                           unistd.h(3HEAD)



     _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  fpath-
     conf(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



SunOS 5.11          Last change: 16 Dec 2003                   13






Headers                                           unistd.h(3HEAD)



     _PC_REC_MAX_XFER_SIZE         _PC_REC_MIN_XFER_SIZE
     _PC_REC_XFER_ALIGN            _PC_SYMLINK_MAX
     _PC_SYNC_IO                   _PC_VDISABLE
     _PC_TIMESTAMP_RESOLUTION
     _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(5) for descriptions of the  following  attri-
     butes:



     ____________________________________________________________
    |       ATTRIBUTE TYPE        |       ATTRIBUTE VALUE       |
    |_____________________________|_____________________________|
    | Interface Stability         | Standard                    |
    |_____________________________|_____________________________|


SEE ALSO
     access(2),  exec(2),   fcntl(2),   fpathconf(2),   lseek(2),
     confstr(3C),  lockf(3C), sysconf(3C), termios(3C), group(4),
     passwd(4), attributes(5), standards(5), termio(7I)










SunOS 5.11          Last change: 16 Dec 2003                   14



