POSIXOPTIONS(7)

ИМЯ
posixoptions - необязательные части стандарта POSIX

ОПИСАНИЕ
В стандарте POSIX (информация взята POSIX.1-2001) описан набор правил работы и интерфейсы, требуемый от совместимой системы. Однако много интерфейсов являются необязательными и имеется набор макросов тестирования свойств для проверки доступности интерфейсов во время компиляции, а также есть функции sysconf(3), fpathconf(3), pathconf(3), confstr(3), которые выполняют проверки во время выполнения. Из сценариев оболочки можно использовать getconf(1). Подробности смотрите в sysconf(3).

Мы приводим имя из POSIX, свойство, имя параметра sysconf(3), который используется для запроса этого свойство, и возможно, очень краткое описание. Более полную информацию можно найти в самом стандарте POSIX, из версий, которые теперь свободно доступны через веб.

  ADV - _POSIX_ADVISORY_INFO - _SC_ADVISORY_INFO
Доступны следующие консультативные функции:

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

  AIO - _POSIX_ASYNCHRONOUS_IO - _SC_ASYNCHRONOUS_IO
Доступен заголовочный файл <aio.h>. Доступны следующие функции:

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

  BAR - _POSIX_BARRIERS - _SC_BARRIERS
Это свойство подразумевает свойства _POSIX_THREADS и _POSIX_THREAD_SAFE_FUNCTIONS. Доступны следующие функции:

pthread_barrier_destroy(),
pthread_barrier_init(),
pthread_barrier_wait(),
pthread_barrierattr_destroy(),
pthread_barrierattr_init().

  --- - POSIX_CHOWN_RESTRICTED
Если действует это свойство (всегда, согласно POSIX.1-2001), то только root может изменять владельца файла, а не-root может задавать группу файла только, если он входит в эту группу. Это учитывается в функциях chown(), fchown().

  CS - _POSIX_CLOCK_SELECTION - _SC_CLOCK_SELECTION
Это свойство подразумевает свойство _POSIX_TIMERS. Доступны следующие функции:

pthread_condattr_getclock(),
pthread_condattr_setclock(),
clock_nanosleep().

Если CLOCK_REALTIME изменяется функцией clock_settime(), то это влияет на все таймеры, заданные абсолютным временем.

  CPT - _POSIX_CPUTIME - _SC_CPUTIME
Поддерживается clockID CLOCK_PROCESS_CPUTIME_ID. Начальное значение этих часов равно нулю для каждого процесса. Данное свойство подразумевает свойство _POSIX_TIMERS. Доступна функция clock_getcpuclockid().

  --- - _POSIX_FILE_LOCKING - _SC_FILE_LOCKING
Эта функция была удалена. Нет в окончательной XPG6.

  FSC - _POSIX_FSYNC - _SC_FSYNC
Доступна функция fsync().

  IP6 - _POSIX_IPV6 - _SC_IPV6
Поддерживается Internet Protocol Version 6.

  --- - _POSIX_JOB_CONTROL - _SC_JOB_CONTROL
Если доступно это свойство (всегда в POSIX.1-2001), то в системе реализовано управление заданиями в стиле POSIX и доступны следующие функции:

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

  MF - _POSIX_MAPPED_FILES - _SC_MAPPED_FILES
Поддерживается общая память. Доступен заголовочный файл <sys/mman.h>. Доступны следующие функции: mmap(), msync(), munmap().

  ML - _POSIX_MEMLOCK - _SC_MEMLOCK
Общая память может блокироваться в ядре (core). Доступны функции mlockall(), munlockall().

  MR/MLR - _POSIX_MEMLOCK_RANGE - _SC_MEMLOCK_RANGE
Более точно, диапазоны могут блокироваться в ядре (core). Доступны функции mlock(), munlock().

  MPR - _POSIX_MEMORY_PROTECTION - _SC_MEMORY_PROTECTION
Доступна функция mprotect().

  MSG - _POSIX_MESSAGE_PASSING - _SC_MESSAGE_PASSING
Доступен заголовочный файл <mqueue.h>. Доступны следующие функции:

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. Это свойство подразумевает свойство _POSIX_TIMERS option. Влияет на функции:

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

  --- - _POSIX_MULTI_PROCESS - _SC_MULTI_PROCESS
Эта функция была удалена. Нет в окончательной XPG6.

  --- - _POSIX_NO_TRUNC
Если доступно это свойство (всегда в POSIX.1-2001), то компоненты пути длиннее чем NAME_MAX не обрезаются, а выдаётся ошибка. Данное свойство может зависеть от префикса компонента пути.

  PIO - _POSIX_PRIORITIZED_IO - _SC_PRIORITIZED_IO
Это свойство показывает, то можно задавать приоритеты для асинхронного ввода-вывода. Влияет на функции:

aio_read(),
aio_write().

  PS - _POSIX_PRIORITY_SCHEDULING - _SC_PRIORITY_SCHEDULING
Доступен заголовочный файл <sched.h>. Доступны следующие функции:

sched_get_priority_max(),
sched_get_priority_min(),
sched_getparam(),
sched_getscheduler(),
sched_rr_get_interval(),
sched_setparam(),
sched_setscheduler(),
sched_yield().
Если также доступно свойство _POSIX_SPAWN, доступны следующие функции:

posix_spawnattr_getschedparam(),
posix_spawnattr_getschedpolicy(),
posix_spawnattr_setschedparam(),
posix_spawnattr_setschedpolicy().

  RS - _POSIX_RAW_SOCKETS
Поддерживаются неструктурированные сокеты. Влияет на функции getsockopt(), setsockopt().

  --- - _POSIX_READER_WRITER_LOCKS - _SC_READER_WRITER_LOCKS
Это свойство подразумевает свойство _POSIX_THREADS. И наоборот, согласно POSIX.1-2001, свойство _POSIX_THREADS подразумевает это свойство.

Доступны следующие функции:
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
Доступны сигналы реального времени. Доступны следующие функции:

sigqueue(),
sigtimedwait(),
sigwaitinfo().

  --- - _POSIX_REGEXP - _SC_REGEXP
Если доступно это свойство (всегда в POSIX.1-2001), то поддерживаются регулярные выражения POSIX и доступны следующие функции:

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

  --- - _POSIX_SAVED_IDS - _SC_SAVED_IDS
Если доступно это свойство (всегда в POSIX.1-2001), то у процесса имеются сохранённый set-user-ID и сохранённый set-group-ID. Это влияет на функции:

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

  SEM - _POSIX_SEMAPHORES - _SC_SEMAPHORES
Доступен заголовочный файл <semaphore.h>. Доступны следующие функции:

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
Доступны следующие функции:

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

  --- - _POSIX_SHELL - _SC_SHELL
Если доступно это свойство (всегда в POSIX.1-2001), то в системе доступна функция system().

  SPN - _POSIX_SPAWN - _SC_SPAWN
Это свойство описывает поддержку создания процесса в условиях, при которых трудно или невозможно использовать fork(), например, из-за отсутствия MMU. Если доступно свойство _POSIX_SPAWN, то в системе есть заголовочный файл <spawn.h> и доступны следующие функции:

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().
Если также доступно свойство _POSIX_PRIORITY_SCHEDULING, доступны следующие функции:

posix_spawnattr_getschedparam(),
posix_spawnattr_getschedpolicy(),
posix_spawnattr_setschedparam(),
posix_spawnattr_setschedpolicy().

  SPI - _POSIX_SPIN_LOCKS - _SC_SPIN_LOCKS
Это свойство подразумевает свойства _POSIX_THREADS и _POSIX_THREAD_SAFE_FUNCTIONS. Доступны следующие функции:

pthread_spin_destroy(),
pthread_spin_init(),
pthread_spin_lock(),
pthread_spin_trylock(),
pthread_spin_unlock().

  SS - _POSIX_SPORADIC_SERVER - _SC_SPORADIC_SERVER
Поддерживается алгоритм планирования SCHED_SPORADIC. Это свойство подразумевает свойство _POSIX_PRIORITY_SCHEDULING. Влияет на функции:

sched_setparam(),
sched_setscheduler().

  SIO - _POSIX_SYNCHRONIZED_IO - _SC_SYNCHRONIZED_IO
Влияет на функции open(), msync(), fsync(), fdatasync().

  TSA - _POSIX_THREAD_ATTR_STACKADDR - _SC_THREAD_ATTR_STACKADDR
Влияет на функции

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

  TSS - _POSIX_THREAD_ATTR_STACKSIZE - _SC_THREAD_ATTR_STACKSIZE
Влияет на функции

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

  TCT - _POSIX_THREAD_CPUTIME - _SC_THREAD_CPUTIME
Поддерживается clockID CLOCK_THREAD_CPUTIME_ID. Это свойство подразумевает свойство _POSIX_TIMERS. Влияет на функции:

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

  TPI - _POSIX_THREAD_PRIO_INHERIT - _SC_THREAD_PRIO_INHERIT
Влияет на функции

pthread_mutexattr_getprotocol(),
pthread_mutexattr_setprotocol().

  TPP - _POSIX_THREAD_PRIO_PROTECT - _SC_THREAD_PRIO_PROTECT
Влияет на функции

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
Если доступно это свойство, то нити в процессе можно выполнять с разными приоритетами или планировщиками. Влияет на функции:

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
Влияет на функции

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
Влияет на функции

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
Это свойство подразумевает свойство _POSIX_THREAD_PRIORITY_SCHEDULING. Влияет на функции:

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

  THR - _POSIX_THREADS - _SC_THREADS
Доступна начальная поддержка нитей POSIX. Доступны следующие функции:

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
Доступны следующие функции:

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

  TMR - _POSIX_TIMERS - _SC_TIMERS
Доступны следующие функции:

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

  TRC - _POSIX_TRACE - _SC_TRACE
Доступна поддержка трассировки POSIX. Доступны следующие функции:

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
Это свойство подразумевает свойство _POSIX_TRACE. Доступны следующие функции:

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
Поддерживается трассировка потомков трассируемого процесса. Это свойство подразумевает свойство _POSIX_TRACE. Доступны следующие функции:

posix_trace_attr_getinherited(),
posix_trace_attr_setinherited().

  TRL - _POSIX_TRACE_LOG - _SC_TRACE_LOG
Это свойство подразумевает свойство _POSIX_TRACE. Доступны следующие функции:

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
Доступны следующие функции:

posix_mem_offset(),
posix_typed_mem_get_info(),
posix_typed_mem_open().

  --- - _POSIX_VDISABLE
Имеется всегда (вероятное значение — 0). Присвоение значения специального управляющего символа означает выключение.

РАСШИРЕНИЯ XOPEN
_XOPEN_CRYPT, _XOPEN_LEGACY, _XOPEN_REALTIME, _XOPEN_REALTIME_THREADS, _XOPEN_UNIX.

СМОТРИТЕ ТАКЖЕ
sysconf(3), standards(7)