Scroll to navigation

POSIXOPTIONS(7) Руководство программиста Linux 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), то только суперпользователь может изменять владельца файла, а обычный пользователь может задать группу файла только на одну из групп, которой принадлежит. Учитывается в функциях:


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

Поддерживается идентификатор часов 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. Влияет на следующие функции:


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

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

РАСШИРЕНИЯ X/OPEN SYSTEM INTERFACE

XSI - _XOPEN_CRYPT - _SC_XOPEN_CRYPT

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


crypt() encrypt() setkey()

XSI - _XOPEN_REALTIME - _SC_XOPEN_REALTIME

Это свойство подразумевает следующие свойства:

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

Группа свойств Advanced Realtime подразумевает, что все следующие свойства определены до 200112L:

_POSIX_ADVISORY_INFO
_POSIX_CLOCK_SELECTION
(подразумевает _POSIX_TIMERS)
_POSIX_CPUTIME
(подразумевает _POSIX_TIMERS)
_POSIX_MONOTONIC_CLOCK
(подразумевает _POSIX_TIMERS)
_POSIX_SPAWN
_POSIX_SPORADIC_SERVER
(подразумевает _POSIX_PRIORITY_SCHEDULING)
_POSIX_TIMEOUTS
_POSIX_TYPED_MEMORY_OBJECTS

XSI - _XOPEN_REALTIME_THREADS - _SC_XOPEN_REALTIME_THREADS

Это свойство подразумевает, что все следующие свойства определены до 200112L:

_POSIX_THREAD_PRIO_INHERIT
_POSIX_THREAD_PRIO_PROTECT
_POSIX_THREAD_PRIORITY_SCHEDULING

ADVANCED REALTIME THREADS - --- - ---

Это свойство подразумевает, что все следующие свойства определены до 200112L:

_POSIX_BARRIERS
(подразумевает _POSIX_THREADS, _POSIX_THREAD_SAFE_FUNCTIONS)
_POSIX_SPIN_LOCKS
(подразумевает _POSIX_THREADS, _POSIX_THREAD_SAFE_FUNCTIONS)
_POSIX_THREAD_CPUTIME
(подразумевает _POSIX_TIMERS)
_POSIX_THREAD_SPORADIC_SERVER
(подразумевает _POSIX_THREAD_PRIORITY_SCHEDULING)

TRACING - --- - ---

Это свойство подразумевает, что все следующие свойства определены до 200112L:

_POSIX_TRACE
_POSIX_TRACE_EVENT_FILTER
_POSIX_TRACE_LOG
_POSIX_TRACE_INHERIT

STREAMS - _XOPEN_STREAMS - _SC_XOPEN_STREAMS

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


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

XSI - _XOPEN_LEGACY - _SC_XOPEN_LEGACY

Функции, включённые в группу устаревших свойств, которые были обязательны ранее, но в этой версии стали необязательными. Это относится к следующим функциям:


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

XSI - _XOPEN_UNIX - _SC_XOPEN_UNIX

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


mmap() munmap() msync()

Это свойство подразумевает следующие свойства:

_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

Это свойство может подразумевать следующие свойства из групп свойств XSI:

Шифрование (_XOPEN_CRYPT)

СМ. ТАКЖЕ

sysconf(3), standards(7)

ЗАМЕЧАНИЯ

Эта страница является частью проекта Linux man-pages версии 5.10. Описание проекта, информацию об ошибках и последнюю версию этой страницы можно найти по адресу https://www.kernel.org/doc/man-pages/.

ПЕРЕВОД

Русский перевод этой страницы руководства был сделан Alexey, Azamat Hackimov <azamat.hackimov@gmail.com>, kogamatranslator49 <r.podarov@yandex.ru>, Kogan, Max Is <ismax799@gmail.com>, Yuri Kozlov <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>

Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3 или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на man-pages-ru-talks@lists.sourceforge.net.

30 апреля 2018 г.