POSIXOPTIONS(7) Linux Programmer's Manual POSIXOPTIONS(7)

posixoptions - optional parts of the POSIX standard

The POSIX standard (the information below is from POSIX 1003.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.

The advisory functions



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


are present.

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.

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.

If this option is in effect (as it always is under POSIX 1003.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().

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.

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.

This option has been deleted. Not in final XPG6.

The function fsync() is present.

Internet Protocol Version 6 is supported.

If this option is in effect (as it always is under POSIX 1003.1-2001) then the system implements POSIX-style job control, and the functions



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

are present.

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

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

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

The function mprotect() is present.

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.

CLOCK_MONOTONIC is supported.
This option implies the _POSIX_TIMERS option.
Affected functions are

aio_suspend(),
clock_getres(),
clock_gettime(),
clock_settime(),
timer_create().

This option has been deleted. Not in final XPG6.

If this option is in effect (as it always is under POSIX 1003.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.

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



aio_read(),
aio_write().

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.

Raw sockets are supported. Affected functions are getsockopt(), setsockopt().

This option implies the _POSIX_THREADS option. Conversely, under POSIX 1003.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.

Realtime signals are supported. The functions



sigqueue(),
sigtimedwait(),
sigwaitinfo()


are present.

If this option is in effect (as it always is under POSIX 1003.1-2001) then POSIX regular expressions are supported and the functions



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


are present.

If this option is in effect (as it always is under POSIX 1003.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().


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.

The functions



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


are present.

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

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.

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.

The scheduling policy SCHED_SPORADIC is supported. This option implies the _POSIX_PRIORITY_SCHEDULING option. Affected functions are



sched_setparam(),
sched_setscheduler().


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

Affected functions are



pthread_attr_getstack(),
pthread_attr_getstackaddr(),
pthread_attr_setstack(),
pthread_attr_setstackaddr().


Affected functions are



pthread_attr_getstack(),
pthread_attr_getstacksize(),
pthread_attr_setstack(),
pthread_attr_setstacksize().


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().


Affected functions are



pthread_mutexattr_getprotocol(),
pthread_mutexattr_setprotocol().


Affected functions are



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


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().


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().


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().


This option implies the _POSIX_THREAD_PRIORITY_SCHEDULING option. Affected functions are



sched_getparam(),
sched_setparam(),
sched_setscheduler().


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.

The functions



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


are present.

The functions



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


are present.

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.

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.

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.

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.

The functions



posix_mem_offset(),
posix_typed_mem_get_info(),
posix_typed_mem_open()


are present.

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

_XOPEN_CRYPT, _XOPEN_LEGACY, _XOPEN_REALTIME, _XOPEN_REALTIME_THREADS, _XOPEN_UNIX.

sysconf(3)

2003-08-24 POSIX

Different Versions of this Page: