# phpman > info > posixoptions

[POSIXOPTIONS(7)](https://www.chedong.com/phpMan.php/man/POSIXOPTIONS/7/markdown)            Linux Programmer's Manual           [POSIXOPTIONS(7)](https://www.chedong.com/phpMan.php/man/POSIXOPTIONS/7/markdown)

NAME
       posixoptions - optional parts of the POSIX standard

DESCRIPTION
       The  POSIX  standard  (the  information below is from POSIX.1-2001) de-
       scribes a set of behaviors and interfaces for a compliant system.  How-
       ever, many interfaces are optional and there are feature test macros to
       test the availability of interfaces  at  compile  time,  and  functions
       [sysconf(3)](https://www.chedong.com/phpMan.php/man/sysconf/3/markdown),  [fpathconf(3)](https://www.chedong.com/phpMan.php/man/fpathconf/3/markdown),  [pathconf(3)](https://www.chedong.com/phpMan.php/man/pathconf/3/markdown),  [confstr(3)](https://www.chedong.com/phpMan.php/man/confstr/3/markdown)  to do this at run
       time.  From shell scripts one can use [getconf(1)](https://www.chedong.com/phpMan.php/man/getconf/1/markdown).  For more detail, see
       [sysconf(3)](https://www.chedong.com/phpMan.php/man/sysconf/3/markdown).

       We give the name of the POSIX abbreviation, the option, the name of the
       [sysconf(3)](https://www.chedong.com/phpMan.php/man/sysconf/3/markdown) parameter used to inquire about the option, and  possibly  a
       very  short  description.  Much more precise detail can be found in the
       POSIX standard itself, versions  of  which  can  nowadays  be  accessed
       freely on the web.

   ADV - _POSIX_ADVISORY_INFO - _SC_ADVISORY_INFO
       The following advisory functions are present:

           posix_fadvise()
           posix_fallocate()
           posix_memalign()
           posix_madvise()

   AIO - _POSIX_ASYNCHRONOUS_IO - _SC_ASYNCHRONOUS_IO
       The header <aio.h> is present.  The following functions are present:

           aio_cancel()
           aio_error()
           aio_fsync()
           aio_read()
           aio_return()
           aio_suspend()
           aio_write()
           lio_listio()

   BAR - _POSIX_BARRIERS - _SC_BARRIERS
       This option implies the _POSIX_THREADS and _POSIX_THREAD_SAFE_FUNCTIONS
       options.  The following functions are present:

           pthread_barrier_destroy()
           pthread_barrier_init()
           pthread_barrier_wait()
           pthread_barrierattr_destroy()
           pthread_barrierattr_init()

   --- - POSIX_CHOWN_RESTRICTED
       If this option is in effect (as it always is under POSIX.1-2001),  then
       only root may change the owner of a file, and nonroot can set the group
       of a file only to one of the groups it belongs to.   This  affects  the
       following functions

           chown()
           fchown()

   CS - _POSIX_CLOCK_SELECTION - _SC_CLOCK_SELECTION
       This  option implies the _POSIX_TIMERS option.  The following functions
       are present:

           pthread_condattr_getclock()
           pthread_condattr_setclock()
           clock_nanosleep()

       If CLOCK_REALTIME is changed by the function clock_settime(), then this
       affects all timers set for an absolute time.

   CPT - _POSIX_CPUTIME - _SC_CPUTIME
       The  CLOCK_PROCESS_CPUTIME_ID clock ID is supported.  The initial value
       of this  clock  is  0  for  each  process.   This  option  implies  the
       _POSIX_TIMERS option.  The function clock_getcpuclockid() is present.

   --- - _POSIX_FILE_LOCKING - _SC_FILE_LOCKING
       This option has been deleted.  Not in final XPG6.

   FSC - _POSIX_FSYNC - _SC_FSYNC
       The function fsync() is present.

   IP6 - _POSIX_IPV6 - _SC_IPV6
       Internet Protocol Version 6 is supported.

   --- - _POSIX_JOB_CONTROL - _SC_JOB_CONTROL
       If  this option is in effect (as it always is under POSIX.1-2001), then
       the system implements POSIX-style job control, and the following  func-
       tions are present:

           setpgid()
           tcdrain()
           tcflush()
           tcgetpgrp()
           tcsendbreak()
           tcsetattr()
           tcsetpgrp()

   MF - _POSIX_MAPPED_FILES - _SC_MAPPED_FILES
       Shared  memory is supported.  The include file <sys/mman.h> is present.
       The following functions are present:

           mmap()
           msync()
           munmap()

   ML - _POSIX_MEMLOCK - _SC_MEMLOCK
       Shared memory can be locked into core.   The  following  functions  are
       present:

           mlockall()
           munlockall()

   MR/MLR - _POSIX_MEMLOCK_RANGE - _SC_MEMLOCK_RANGE
       More  precisely,  ranges  can be locked into core.  The following func-
       tions are present:

           mlock()
           munlock()

   MPR - _POSIX_MEMORY_PROTECTION - _SC_MEMORY_PROTECTION
       The function mprotect() is present.

   MSG - _POSIX_MESSAGE_PASSING - _SC_MESSAGE_PASSING
       The include file <mqueue.h> is present.  The  following  functions  are
       present:

           mq_close()
           mq_getattr()
           mq_notify()
           mq_open()
           mq_receive()
           mq_send()
           mq_setattr()
           mq_unlink()

   MON - _POSIX_MONOTONIC_CLOCK - _SC_MONOTONIC_CLOCK
       CLOCK_MONOTONIC  is  supported.   This option implies the _POSIX_TIMERS
       option.  The following functions are affected:

           aio_suspend()
           clock_getres()
           clock_gettime()
           clock_settime()
           timer_create()

   --- - _POSIX_MULTI_PROCESS - _SC_MULTI_PROCESS
       This option has been deleted.  Not in final XPG6.

   --- - _POSIX_NO_TRUNC
       If this option is in effect (as it always is under POSIX.1-2001),  then
       pathname components longer than NAME_MAX are not truncated, but give an
       error.  This property may be dependent on the path prefix of the compo-
       nent.

   PIO - _POSIX_PRIORITIZED_IO - _SC_PRIORITIZED_IO
       This  option says that one can specify priorities for asynchronous I/O.
       This affects the functions

           aio_read()
           aio_write()

   PS - _POSIX_PRIORITY_SCHEDULING - _SC_PRIORITY_SCHEDULING
       The include file <sched.h> is present.   The  following  functions  are
       present:

           sched_get_priority_max()
           sched_get_priority_min()
           sched_getparam()
           sched_getscheduler()
           sched_rr_get_interval()
           sched_setparam()
           sched_setscheduler()
           sched_yield()

       If  also  _POSIX_SPAWN  is  in effect, then the following functions are
       present:

           posix_spawnattr_getschedparam()
           posix_spawnattr_getschedpolicy()
           posix_spawnattr_setschedparam()
           posix_spawnattr_setschedpolicy()

   RS - _POSIX_RAW_SOCKETS
       Raw sockets are supported.  The following functions are affected:

           getsockopt()
           setsockopt()

   --- - _POSIX_READER_WRITER_LOCKS - _SC_READER_WRITER_LOCKS
       This option  implies  the  _POSIX_THREADS  option.   Conversely,  under
       POSIX.1-2001 the _POSIX_THREADS option implies this option.

       The following functions are present:

           pthread_rwlock_destroy()
           pthread_rwlock_init()
           pthread_rwlock_rdlock()
           pthread_rwlock_tryrdlock()
           pthread_rwlock_trywrlock()
           pthread_rwlock_unlock()
           pthread_rwlock_wrlock()
           pthread_rwlockattr_destroy()
           pthread_rwlockattr_init()

   RTS - _POSIX_REALTIME_SIGNALS - _SC_REALTIME_SIGNALS
       Realtime signals are supported.  The following functions are present:

           sigqueue()
           sigtimedwait()
           sigwaitinfo()

   --- - _POSIX_REGEXP - _SC_REGEXP
       If  this option is in effect (as it always is under POSIX.1-2001), then
       POSIX regular expressions are supported and the following functions are
       present:

           regcomp()
           regerror()
           regexec()
           regfree()

   --- - _POSIX_SAVED_IDS - _SC_SAVED_IDS
       If  this option is in effect (as it always is under POSIX.1-2001), then
       a process has a saved set-user-ID and a saved set-group-ID.   The  fol-
       lowing functions are affected:

           exec()
           kill()
           seteuid()
           setegid()
           setgid()
           setuid()

   SEM - _POSIX_SEMAPHORES - _SC_SEMAPHORES
       The include file <semaphore.h> is present.  The following functions are
       present:

           sem_close()
           sem_destroy()
           sem_getvalue()
           sem_init()
           sem_open()
           sem_post()
           sem_trywait()
           sem_unlink()
           sem_wait()

   SHM - _POSIX_SHARED_MEMORY_OBJECTS - _SC_SHARED_MEMORY_OBJECTS
       The following functions are present:

           mmap()
           munmap()
           shm_open()
           shm_unlink()

   --- - _POSIX_SHELL - _SC_SHELL
       If this option is in effect (as it always is under  POSIX.1-2001),  the
       function system() is present.

   SPN - _POSIX_SPAWN - _SC_SPAWN
       This  option  describes support for process creation in a context where
       it is difficult or impossible to use fork(), for  example,  because  no
       MMU is present.

       If  _POSIX_SPAWN  is in effect, then the include file <spawn.h> and the
       following functions are present:

           posix_spawn()
           posix_spawn_file_actions_addclose()
           posix_spawn_file_actions_adddup2()
           posix_spawn_file_actions_addopen()
           posix_spawn_file_actions_destroy()
           posix_spawn_file_actions_init()
           posix_spawnattr_destroy()
           posix_spawnattr_getsigdefault()
           posix_spawnattr_getflags()
           posix_spawnattr_getpgroup()
           posix_spawnattr_getsigmask()
           posix_spawnattr_init()
           posix_spawnattr_setsigdefault()
           posix_spawnattr_setflags()
           posix_spawnattr_setpgroup()
           posix_spawnattr_setsigmask()
           posix_spawnp()

       If also _POSIX_PRIORITY_SCHEDULING is in  effect,  then  the  following
       functions are present:

           posix_spawnattr_getschedparam()
           posix_spawnattr_getschedpolicy()
           posix_spawnattr_setschedparam()
           posix_spawnattr_setschedpolicy()

   SPI - _POSIX_SPIN_LOCKS - _SC_SPIN_LOCKS
       This option implies the _POSIX_THREADS and _POSIX_THREAD_SAFE_FUNCTIONS
       options.  The following functions are present:

           pthread_spin_destroy()
           pthread_spin_init()
           pthread_spin_lock()
           pthread_spin_trylock()
           pthread_spin_unlock()

   SS - _POSIX_SPORADIC_SERVER - _SC_SPORADIC_SERVER
       The scheduling policy SCHED_SPORADIC is supported.  This option implies
       the _POSIX_PRIORITY_SCHEDULING option.  The following functions are af-
       fected:

           sched_setparam()
           sched_setscheduler()

   SIO - _POSIX_SYNCHRONIZED_IO - _SC_SYNCHRONIZED_IO
       The following functions are affected:

           open()
           msync()
           fsync()
           fdatasync()

   TSA - _POSIX_THREAD_ATTR_STACKADDR - _SC_THREAD_ATTR_STACKADDR
       The following functions are affected:

           pthread_attr_getstack()
           pthread_attr_getstackaddr()
           pthread_attr_setstack()
           pthread_attr_setstackaddr()

   TSS - _POSIX_THREAD_ATTR_STACKSIZE - _SC_THREAD_ATTR_STACKSIZE
       The following functions are affected:

           pthread_attr_getstack()
           pthread_attr_getstacksize()
           pthread_attr_setstack()
           pthread_attr_setstacksize()

   TCT - _POSIX_THREAD_CPUTIME - _SC_THREAD_CPUTIME
       The clockID CLOCK_THREAD_CPUTIME_ID is supported.  This option  implies
       the _POSIX_TIMERS option.  The following functions are affected:

           pthread_getcpuclockid()
           clock_getres()
           clock_gettime()
           clock_settime()
           timer_create()

   TPI - _POSIX_THREAD_PRIO_INHERIT - _SC_THREAD_PRIO_INHERIT
       The following functions are affected:

           pthread_mutexattr_getprotocol()
           pthread_mutexattr_setprotocol()

   TPP - _POSIX_THREAD_PRIO_PROTECT - _SC_THREAD_PRIO_PROTECT
       The following functions are affected:

           pthread_mutex_getprioceiling()
           pthread_mutex_setprioceiling()
           pthread_mutexattr_getprioceiling()
           pthread_mutexattr_getprotocol()
           pthread_mutexattr_setprioceiling()
           pthread_mutexattr_setprotocol()

   TPS - _POSIX_THREAD_PRIORITY_SCHEDULING - _SC_THREAD_PRIORITY_SCHEDULING
       If this option is in effect, the different threads inside a process can
       run with different priorities and/or different schedulers.  The follow-
       ing functions are affected:

           pthread_attr_getinheritsched()
           pthread_attr_getschedpolicy()
           pthread_attr_getscope()
           pthread_attr_setinheritsched()
           pthread_attr_setschedpolicy()
           pthread_attr_setscope()
           pthread_getschedparam()
           pthread_setschedparam()
           pthread_setschedprio()

   TSH - _POSIX_THREAD_PROCESS_SHARED - _SC_THREAD_PROCESS_SHARED
       The following functions are affected:

           pthread_barrierattr_getpshared()
           pthread_barrierattr_setpshared()
           pthread_condattr_getpshared()
           pthread_condattr_setpshared()
           pthread_mutexattr_getpshared()
           pthread_mutexattr_setpshared()
           pthread_rwlockattr_getpshared()
           pthread_rwlockattr_setpshared()

   TSF - _POSIX_THREAD_SAFE_FUNCTIONS - _SC_THREAD_SAFE_FUNCTIONS
       The following functions are affected:

           readdir_r()
           getgrgid_r()
           getgrnam_r()
           getpwnam_r()
           getpwuid_r()
           flockfile()
           ftrylockfile()
           funlockfile()
           getc_unlocked()
           getchar_unlocked()
           putc_unlocked()
           putchar_unlocked()
           rand_r()
           strerror_r()
           strtok_r()
           asctime_r()
           ctime_r()
           gmtime_r()
           localtime_r()

   TSP - _POSIX_THREAD_SPORADIC_SERVER - _SC_THREAD_SPORADIC_SERVER
       This  option implies the _POSIX_THREAD_PRIORITY_SCHEDULING option.  The
       following functions are affected:

           sched_getparam()
           sched_setparam()
           sched_setscheduler()

   THR - _POSIX_THREADS - _SC_THREADS
       Basic support for POSIX threads is available.  The following  functions
       are present:

           pthread_atfork()
           pthread_attr_destroy()
           pthread_attr_getdetachstate()
           pthread_attr_getschedparam()
           pthread_attr_init()
           pthread_attr_setdetachstate()
           pthread_attr_setschedparam()
           pthread_cancel()
           pthread_cleanup_push()
           pthread_cleanup_pop()
           pthread_cond_broadcast()
           pthread_cond_destroy()
           pthread_cond_init()
           pthread_cond_signal()
           pthread_cond_timedwait()
           pthread_cond_wait()
           pthread_condattr_destroy()
           pthread_condattr_init()
           pthread_create()
           pthread_detach()
           pthread_equal()
           pthread_exit()
           pthread_getspecific()
           pthread_join()
           pthread_key_create()
           pthread_key_delete()
           pthread_mutex_destroy()
           pthread_mutex_init()
           pthread_mutex_lock()
           pthread_mutex_trylock()
           pthread_mutex_unlock()
           pthread_mutexattr_destroy()
           pthread_mutexattr_init()
           pthread_once()
           pthread_rwlock_destroy()
           pthread_rwlock_init()
           pthread_rwlock_rdlock()
           pthread_rwlock_tryrdlock()
           pthread_rwlock_trywrlock()
           pthread_rwlock_unlock()
           pthread_rwlock_wrlock()
           pthread_rwlockattr_destroy()
           pthread_rwlockattr_init()
           pthread_self()
           pthread_setcancelstate()
           pthread_setcanceltype()
           pthread_setspecific()
           pthread_testcancel()

   TMO - _POSIX_TIMEOUTS - _SC_TIMEOUTS
       The following functions are present:

           mq_timedreceive()
           mq_timedsend()
           pthread_mutex_timedlock()
           pthread_rwlock_timedrdlock()
           pthread_rwlock_timedwrlock()
           sem_timedwait()
           posix_trace_timedgetnext_event()

   TMR - _POSIX_TIMERS - _SC_TIMERS
       The following functions are present:

           clock_getres()
           clock_gettime()
           clock_settime()
           nanosleep()
           timer_create()
           timer_delete()
           timer_gettime()
           timer_getoverrun()
           timer_settime()

   TRC - _POSIX_TRACE - _SC_TRACE
       POSIX tracing is available.  The following functions are present:

           posix_trace_attr_destroy()
           posix_trace_attr_getclockres()
           posix_trace_attr_getcreatetime()
           posix_trace_attr_getgenversion()
           posix_trace_attr_getmaxdatasize()
           posix_trace_attr_getmaxsystemeventsize()
           posix_trace_attr_getmaxusereventsize()
           posix_trace_attr_getname()
           posix_trace_attr_getstreamfullpolicy()
           posix_trace_attr_getstreamsize()
           posix_trace_attr_init()
           posix_trace_attr_setmaxdatasize()
           posix_trace_attr_setname()
           posix_trace_attr_setstreamsize()
           posix_trace_attr_setstreamfullpolicy()
           posix_trace_clear()
           posix_trace_create()
           posix_trace_event()
           posix_trace_eventid_equal()
           posix_trace_eventid_get_name()
           posix_trace_eventid_open()
           posix_trace_eventtypelist_getnext_id()
           posix_trace_eventtypelist_rewind()
           posix_trace_flush()
           posix_trace_get_attr()
           posix_trace_get_status()
           posix_trace_getnext_event()
           posix_trace_shutdown()
           posix_trace_start()
           posix_trace_stop()
           posix_trace_trygetnext_event()

   TEF - _POSIX_TRACE_EVENT_FILTER - _SC_TRACE_EVENT_FILTER
       This  option  implies the _POSIX_TRACE option.  The following functions
       are present:

           posix_trace_eventset_add()
           posix_trace_eventset_del()
           posix_trace_eventset_empty()
           posix_trace_eventset_fill()
           posix_trace_eventset_ismember()
           posix_trace_get_filter()
           posix_trace_set_filter()
           posix_trace_trid_eventid_open()

   TRI - _POSIX_TRACE_INHERIT - _SC_TRACE_INHERIT
       Tracing children of the traced process is supported.  This  option  im-
       plies the _POSIX_TRACE option.  The following functions are present:

           posix_trace_attr_getinherited()
           posix_trace_attr_setinherited()

   TRL - _POSIX_TRACE_LOG - _SC_TRACE_LOG
       This  option  implies the _POSIX_TRACE option.  The following functions
       are present:

           posix_trace_attr_getlogfullpolicy()
           posix_trace_attr_getlogsize()
           posix_trace_attr_setlogfullpolicy()
           posix_trace_attr_setlogsize()
           posix_trace_close()
           posix_trace_create_withlog()
           posix_trace_open()
           posix_trace_rewind()

   TYM - _POSIX_TYPED_MEMORY_OBJECTS - _SC_TYPED_MEMORY_OBJECT
       The following functions are present:

           posix_mem_offset()
           posix_typed_mem_get_info()
           posix_typed_mem_open()

   --- - _POSIX_VDISABLE
       Always present (probably 0).  Value to set a changeable special control
       character to indicate that it is disabled.

X/OPEN SYSTEM INTERFACE EXTENSIONS
   XSI - _XOPEN_CRYPT - _SC_XOPEN_CRYPT
       The following functions are present:

           crypt()
           encrypt()
           setkey()

   XSI - _XOPEN_REALTIME - _SC_XOPEN_REALTIME
       This option implies the following options:

       _POSIX_ASYNCHRONOUS_IO==200112L
       _POSIX_FSYNC
       _POSIX_MAPPED_FILES
       _POSIX_MEMLOCK==200112L
       _POSIX_MEMLOCK_RANGE==200112L
       _POSIX_MEMORY_PROTECTION
       _POSIX_MESSAGE_PASSING==200112L
       _POSIX_PRIORITIZED_IO
       _POSIX_PRIORITY_SCHEDULING==200112L
       _POSIX_REALTIME_SIGNALS==200112L
       _POSIX_SEMAPHORES==200112L
       _POSIX_SHARED_MEMORY_OBJECTS==200112L
       _POSIX_SYNCHRONIZED_IO==200112L
       _POSIX_TIMERS==200112L

   ADV - --- - ---
       The  Advanced  Realtime option group implies that the following options
       are all defined to 200112L:

       _POSIX_ADVISORY_INFO
       _POSIX_CLOCK_SELECTION
              (implies _POSIX_TIMERS)
       _POSIX_CPUTIME
              (implies _POSIX_TIMERS)
       _POSIX_MONOTONIC_CLOCK
              (implies _POSIX_TIMERS)
       _POSIX_SPAWN
       _POSIX_SPORADIC_SERVER
              (implies _POSIX_PRIORITY_SCHEDULING)
       _POSIX_TIMEOUTS
       _POSIX_TYPED_MEMORY_OBJECTS

   XSI - _XOPEN_REALTIME_THREADS - _SC_XOPEN_REALTIME_THREADS
       This option implies that the  following  options  are  all  defined  to
       200112L:

       _POSIX_THREAD_PRIO_INHERIT
       _POSIX_THREAD_PRIO_PROTECT
       _POSIX_THREAD_PRIORITY_SCHEDULING

   ADVANCED REALTIME THREADS - --- - ---
       This  option  implies  that  the  following  options are all defined to
       200112L:

       _POSIX_BARRIERS
              (implies _POSIX_THREADS, _POSIX_THREAD_SAFE_FUNCTIONS)
       _POSIX_SPIN_LOCKS
              (implies _POSIX_THREADS, _POSIX_THREAD_SAFE_FUNCTIONS)
       _POSIX_THREAD_CPUTIME
              (implies _POSIX_TIMERS)
       _POSIX_THREAD_SPORADIC_SERVER
              (implies _POSIX_THREAD_PRIORITY_SCHEDULING)

   TRACING - --- - ---
       This option implies that the  following  options  are  all  defined  to
       200112L:

       _POSIX_TRACE
       _POSIX_TRACE_EVENT_FILTER
       _POSIX_TRACE_LOG
       _POSIX_TRACE_INHERIT

   STREAMS - _XOPEN_STREAMS - _SC_XOPEN_STREAMS
       The following functions are present:

           fattach()
           fdetach()
           getmsg()
           getpmsg()
           ioctl()
           isastream()
           putmsg()
           putpmsg()

   XSI - _XOPEN_LEGACY - _SC_XOPEN_LEGACY
       Functions  included  in  the legacy option group were previously manda-
       tory, but are now optional in this version.   The  following  functions
       are present:

           bcmp()
           bcopy()
           bzero()
           ecvt()
           fcvt()
           ftime()
           gcvt()
           getcwd()
           index()
           mktemp()
           rindex()
           utimes()
           wcswcs()

   XSI - _XOPEN_UNIX - _SC_XOPEN_UNIX
       The following functions are present:

           mmap()
           munmap()
           msync()

       This option implies the following options:

       _POSIX_FSYNC
       _POSIX_MAPPED_FILES
       _POSIX_MEMORY_PROTECTION
       _POSIX_THREAD_ATTR_STACKADDR
       _POSIX_THREAD_ATTR_STACKSIZE
       _POSIX_THREAD_PROCESS_SHARED
       _POSIX_THREAD_SAFE_FUNCTIONS
       _POSIX_THREADS

       This option may imply the following options from the XSI option groups:

       Encryption (_XOPEN_CRYPT)
       Realtime (_XOPEN_REALTIME)
       Advanced Realtime (ADB)
       Realtime Threads (_XOPEN_REALTIME_THREADS)
       Advanced Realtime Threads (ADVANCED REALTIME THREADS)
       Tracing (TRACING)
       XSI Streams (STREAMS)
       Legacy (_XOPEN_LEGACY)

SEE ALSO
       [sysconf(3)](https://www.chedong.com/phpMan.php/man/sysconf/3/markdown), [standards(7)](https://www.chedong.com/phpMan.php/man/standards/7/markdown)

COLOPHON
       This  page  is  part of release 5.10 of the Linux man-pages project.  A
       description of the project, information about reporting bugs,  and  the
       latest     version     of     this    page,    can    be    found    at
       <https://www.kernel.org/doc/man-pages/>.

                                  2018-04-30                   [POSIXOPTIONS(7)](https://www.chedong.com/phpMan.php/man/POSIXOPTIONS/7/markdown)
