Linux Blog

POSIXOPTIONS

Section: Linux Programmer's Manual (7)
Updated: 2003-08-24
Index Return to Main Contents
 

NAME

posixoptions - optional parts of the POSIX standard  

DESCRIPTION

The POSIX standard (the information below is from POSIX.1-2001) describes a set of behaviours and interfaces for a compliant system. However, many interfaces are optional and there are feature test macros to test the availability of interfaces at compile time, and functions sysconf(3), fpathconf(3), pathconf(3), confstr(3) to do this at run time. From shell scripts one can use getconf(1). For more detail, see sysconf(3).

We give the name of the POSIX abbreviation, the option, the name of the sysconf() 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 advisory functions
posix_fadvise(),
posix_fallocate(),
posix_memalign(),
posix_madvise()

are present.  

AIO - _POSIX_ASYNCHRONOUS_IO - _SC_ASYNCHRONOUS_IO

The header <aio.h> is present. The functions
aio_cancel(),
aio_error(),
aio_fsync(),
aio_read(),
aio_return(),
aio_suspend(),
aio_write(),
lio_listio()

are present.  

BAR - _POSIX_BARRIERS - _SC_BARRIERS

This option implies the _POSIX_THREADS and _POSIX_THREAD_SAFE_FUNCTIONS options. The functions
pthread_barrier_destroy(),
pthread_barrier_init(),
pthread_barrier_wait(),
pthread_barrierattr_destroy(),
pthread_barrierattr_init()

are present.  

--- - 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 non-root can only set the group of a file to one of the groups it belongs to. This affects the functions chown(), fchown().  

CS - _POSIX_CLOCK_SELECTION - _SC_CLOCK_SELECTION

This option implies the _POSIX_TIMERS option. The functions
pthread_condattr_getclock(),
pthread_condattr_setclock(),
clock_nanosleep()

are present. 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 clockID CLOCK_PROCESS_CPUTIME_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 functions
setpgid(),
tcdrain(),
tcflush(),
tcgetpgrp(),
tcsendbreak(),
tcsetattr(),
tcsetpgrp()
are present.
 

MF - _POSIX_MAPPED_FILES - _SC_MAPPED_FILES

Shared memory is supported. The include file <sys/mman.h> is present. The functions mmap(), msync(), munmap() are present.  

ML - _POSIX_MEMLOCK - _SC_MEMLOCK

Shared memory can be locked into core. The functions mlockall(), munlockall() are present.  

MR/MLR - _POSIX_MEMLOCK_RANGE - _SC_MEMLOCK_RANGE

More precisely, ranges can be locked into core. The functions mlock(), munlock() are present.  

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 functions
mq_close(),
mq_getattr(),
mq_notify(),
mq_open(),
mq_receive(),
mq_send(),
mq_setattr(),
mq_unlink()

are present.  

MON - _POSIX_MONOTONIC_CLOCK - _SC_MONOTONIC_CLOCK

CLOCK_MONOTONIC is supported.
This option implies the _POSIX_TIMERS option.
Affected functions are
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 component.  

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 functions
sched_get_priority_max(),
sched_get_priority_min(),
sched_getparam(),
sched_getscheduler(),
sched_rr_get_interval(),
sched_setparam(),
sched_setscheduler(),
sched_yield()

are present. If also _POSIX_SPAWN is in effect, then the functions
posix_spawnattr_getschedparam(),
posix_spawnattr_getschedpolicy(),
posix_spawnattr_setschedparam(),
posix_spawnattr_setschedpolicy()
are present.
 

RS - _POSIX_RAW_SOCKETS

Raw sockets are supported. Affected functions are 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 functions
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()
are present.
 

RTS - _POSIX_REALTIME_SIGNALS - _SC_REALTIME_SIGNALS

Realtime signals are supported. The functions
sigqueue(),
sigtimedwait(),
sigwaitinfo()

are present.  

--- - _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 functions
regcomp(),
regerror(),
regexec(),
regfree()

are present.  

--- - _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. Affected functions are
exec(),
kill(),
seteuid(),
setegid(),
setgid(),
setuid().

 

SEM - _POSIX_SEMAPHORES - _SC_SEMAPHORES

The include file <semaphore.h> is present. The functions
sem_close(),
sem_destroy(),
sem_getvalue(),
sem_init(),
sem_open(),
sem_post(),
sem_trywait(),
sem_unlink(),
sem_wait()

are present.  

SHM - _POSIX_SHARED_MEMORY_OBJECTS - _SC_SHARED_MEMORY_OBJECTS

The functions
mmap(),
munmap(),
shm_open(),
shm_unlink()

are present.  

--- - _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(), e.g. because no MMU is present. If _POSIX_SPAWN is in effect, then the include file <spawn.h> and the functions
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()

are present. If also _POSIX_PRIORITY_SCHEDULING is in effect, then the functions
posix_spawnattr_getschedparam(),
posix_spawnattr_getschedpolicy(),
posix_spawnattr_setschedparam(),
posix_spawnattr_setschedpolicy()
are present.
 

SPI - _POSIX_SPIN_LOCKS - _SC_SPIN_LOCKS

This option implies the _POSIX_THREADS and _POSIX_THREAD_SAFE_FUNCTIONS options. The functions
pthread_spin_destroy(),
pthread_spin_init(),
pthread_spin_lock(),
pthread_spin_trylock(),
pthread_spin_unlock()

are present.  

SS - _POSIX_SPORADIC_SERVER - _SC_SPORADIC_SERVER

The scheduling policy SCHED_SPORADIC is supported. This option implies the _POSIX_PRIORITY_SCHEDULING option. Affected functions are
sched_setparam(),
sched_setscheduler().

 

SIO - _POSIX_SYNCHRONIZED_IO - _SC_SYNCHRONIZED_IO

Affected functions are open(), msync(), fsync(), fdatasync().  

TSA - _POSIX_THREAD_ATTR_STACKADDR - _SC_THREAD_ATTR_STACKADDR

Affected functions are
pthread_attr_getstack(),
pthread_attr_getstackaddr(),
pthread_attr_setstack(),
pthread_attr_setstackaddr().

 

TSS - _POSIX_THREAD_ATTR_STACKSIZE - _SC_THREAD_ATTR_STACKSIZE

Affected functions are
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. Affected functions are
pthread_getcpuclockid(),
clock_getres(),
clock_gettime(),
clock_settime(),
timer_create().

 

TPI - _POSIX_THREAD_PRIO_INHERIT - _SC_THREAD_PRIO_INHERIT

Affected functions are
pthread_mutexattr_getprotocol(),
pthread_mutexattr_setprotocol().

 

TPP - _POSIX_THREAD_PRIO_PROTECT - _SC_THREAD_PRIO_PROTECT

Affected functions are
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. Affected functions are
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

Affected functions are
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

Affected functions are
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. Affected functions are
sched_getparam(),
sched_setparam(),
sched_setscheduler().

 

THR - _POSIX_THREADS - _SC_THREADS

Basic support for POSIX threads is available. The functions
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()

are present.  

TMO - _POSIX_TIMEOUTS - _SC_TIMEOUTS

The functions
mq_timedreceive(),
mq_timedsend(),
pthread_mutex_timedlock(),
pthread_rwlock_timedrdlock(),
pthread_rwlock_timedwrlock(),
sem_timedwait(),
posix_trace_timedgetnext_event()

are present.  

TMR - _POSIX_TIMERS - _SC_TIMERS

The functions
clock_getres(),
clock_gettime(),
clock_settime(),
nanosleep(),
timer_create(),
timer_delete(),
timer_gettime(),
timer_getoverrun(),
timer_settime()

are present.  

TRC - _POSIX_TRACE - _SC_TRACE

POSIX tracing is available. The functions
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()

are present.  

TEF - _POSIX_TRACE_EVENT_FILTER - _SC_TRACE_EVENT_FILTER

This option implies the _POSIX_TRACE option. The functions
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()

are present.  

TRI - _POSIX_TRACE_INHERIT - _SC_TRACE_INHERIT

Tracing children of the traced process is supported. This option implies the _POSIX_TRACE option. The functions
posix_trace_attr_getinherited(),
posix_trace_attr_setinherited()

are present.  

TRL - _POSIX_TRACE_LOG - _SC_TRACE_LOG

This option implies the _POSIX_TRACE option. The functions
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()

are present.  

TYM - _POSIX_TYPED_MEMORY_OBJECTS - _SC_TYPED_MEMORY_OBJECT

The functions
posix_mem_offset(),
posix_typed_mem_get_info(),
posix_typed_mem_open()

are present.  

--- - _POSIX_VDISABLE

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

XOPEN EXTENSIONS

_XOPEN_CRYPT, _XOPEN_LEGACY, _XOPEN_REALTIME, _XOPEN_REALTIME_THREADS, _XOPEN_UNIX.  

SEE ALSO

sysconf(3)


 

Index

NAME
DESCRIPTION
ADV - _POSIX_ADVISORY_INFO - _SC_ADVISORY_INFO
AIO - _POSIX_ASYNCHRONOUS_IO - _SC_ASYNCHRONOUS_IO
BAR - _POSIX_BARRIERS - _SC_BARRIERS
--- - POSIX_CHOWN_RESTRICTED
CS - _POSIX_CLOCK_SELECTION - _SC_CLOCK_SELECTION
CPT - _POSIX_CPUTIME - _SC_CPUTIME
--- - _POSIX_FILE_LOCKING - _SC_FILE_LOCKING
FSC - _POSIX_FSYNC - _SC_FSYNC
IP6 - _POSIX_IPV6 - _SC_IPV6
--- - _POSIX_JOB_CONTROL - _SC_JOB_CONTROL
MF - _POSIX_MAPPED_FILES - _SC_MAPPED_FILES
ML - _POSIX_MEMLOCK - _SC_MEMLOCK
MR/MLR - _POSIX_MEMLOCK_RANGE - _SC_MEMLOCK_RANGE
MPR - _POSIX_MEMORY_PROTECTION - _SC_MEMORY_PROTECTION
MSG - _POSIX_MESSAGE_PASSING - _SC_MESSAGE_PASSING
MON - _POSIX_MONOTONIC_CLOCK - _SC_MONOTONIC_CLOCK
--- - _POSIX_MULTI_PROCESS - _SC_MULTI_PROCESS
--- - _POSIX_NO_TRUNC
PIO - _POSIX_PRIORITIZED_IO - _SC_PRIORITIZED_IO
PS - _POSIX_PRIORITY_SCHEDULING - _SC_PRIORITY_SCHEDULING
RS - _POSIX_RAW_SOCKETS
--- - _POSIX_READER_WRITER_LOCKS - _SC_READER_WRITER_LOCKS
RTS - _POSIX_REALTIME_SIGNALS - _SC_REALTIME_SIGNALS
--- - _POSIX_REGEXP - _SC_REGEXP
--- - _POSIX_SAVED_IDS - _SC_SAVED_IDS
SEM - _POSIX_SEMAPHORES - _SC_SEMAPHORES
SHM - _POSIX_SHARED_MEMORY_OBJECTS - _SC_SHARED_MEMORY_OBJECTS
--- - _POSIX_SHELL - _SC_SHELL
SPN - _POSIX_SPAWN - _SC_SPAWN
SPI - _POSIX_SPIN_LOCKS - _SC_SPIN_LOCKS
SS - _POSIX_SPORADIC_SERVER - _SC_SPORADIC_SERVER
SIO - _POSIX_SYNCHRONIZED_IO - _SC_SYNCHRONIZED_IO
TSA - _POSIX_THREAD_ATTR_STACKADDR - _SC_THREAD_ATTR_STACKADDR
TSS - _POSIX_THREAD_ATTR_STACKSIZE - _SC_THREAD_ATTR_STACKSIZE
TCT - _POSIX_THREAD_CPUTIME - _SC_THREAD_CPUTIME
TPI - _POSIX_THREAD_PRIO_INHERIT - _SC_THREAD_PRIO_INHERIT
TPP - _POSIX_THREAD_PRIO_PROTECT - _SC_THREAD_PRIO_PROTECT
TPS - _POSIX_THREAD_PRIORITY_SCHEDULING - _SC_THREAD_PRIORITY_SCHEDULING
TSH - _POSIX_THREAD_PROCESS_SHARED - _SC_THREAD_PROCESS_SHARED
TSF - _POSIX_THREAD_SAFE_FUNCTIONS - _SC_THREAD_SAFE_FUNCTIONS
TSP - _POSIX_THREAD_SPORADIC_SERVER - _SC_THREAD_SPORADIC_SERVER
THR - _POSIX_THREADS - _SC_THREADS
TMO - _POSIX_TIMEOUTS - _SC_TIMEOUTS
TMR - _POSIX_TIMERS - _SC_TIMERS
TRC - _POSIX_TRACE - _SC_TRACE
TEF - _POSIX_TRACE_EVENT_FILTER - _SC_TRACE_EVENT_FILTER
TRI - _POSIX_TRACE_INHERIT - _SC_TRACE_INHERIT
TRL - _POSIX_TRACE_LOG - _SC_TRACE_LOG
TYM - _POSIX_TYPED_MEMORY_OBJECTS - _SC_TYPED_MEMORY_OBJECT
--- - _POSIX_VDISABLE
XOPEN EXTENSIONS
SEE ALSO




Random Man Pages:
random
suauth
ssetmask
random