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


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

Это свойство подразумевает свойства _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()

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


pthread_condattr_getclock()
pthread_condattr_setclock()
clock_nanosleep()

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

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

--- - _POSIX_FILE_LOCKING - _SC_FILE_LOCKING

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

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

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

--- - _POSIX_JOB_CONTROL - _SC_JOB_CONTROL

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


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

Поддерживается общая память. Доступен заголовочный файл <sys/mman.h>. Доступны следующие функции:


mmap()
msync()
munmap()

Общая память может блокироваться в ядре (core). Доступны следующие функции:


mlockall()
munlockall()

Более точно, диапазоны могут блокироваться в ядре (core). Доступны следующие функции:


mlock()
munlock()

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

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


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

Поддерживается 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 не обрезаются, а выдаётся ошибка. Данное свойство может зависеть от префикса компонента пути.

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


aio_read()
aio_write()

Доступен заголовочный файл <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()

Поддерживаются неструктурированные сокеты. Влияет на следующие функции:


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

Доступны сигналы реального времени. Доступны следующие функции:


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

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


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

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


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

--- - _POSIX_SHELL - _SC_SHELL

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

Данное свойство выделяет процесс создания поддержки в связи с тем, что трудно или невозможно использовать 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()

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


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

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


sched_setparam()
sched_setscheduler()

Влияет на следующие функции:


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

Влияет на следующие функции:


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

Влияет на следующие функции:


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

Поддерживается идентификатор часов CLOCK_THREAD_CPUTIME_ID. Это свойство подразумевает свойство _POSIX_TIMERS. Влияет на следующие функции:


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

Влияет на следующие функции:


pthread_mutexattr_getprotocol()
pthread_mutexattr_setprotocol()

Влияет на следующие функции:


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

Если доступно это свойство, то нити в процессе можно выполнять с разными приоритетами или планировщиками. Влияет на следующие функции:


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

Влияет на следующие функции:


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

Влияет на следующие функции:


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

Это свойство подразумевает свойство _POSIX_THREAD_PRIORITY_SCHEDULING. Влияет на следующие функции:


sched_getparam()
sched_setparam()
sched_setscheduler()

Доступна начальная поддержка нитей 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()

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


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

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


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

Доступна поддержка трассировки 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()

Это свойство подразумевает свойство _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()

Поддерживается трассировка потомков трассируемого процесса. Это свойство подразумевает свойство _POSIX_TRACE. Доступны следующие функции:


posix_trace_attr_getinherited()
posix_trace_attr_setinherited()

Это свойство подразумевает свойство _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()

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


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

Это свойство подразумевает, что все следующие свойства определены до 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)

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

_POSIX_TRACE
_POSIX_TRACE_EVENT_FILTER
_POSIX_TRACE_LOG
_POSIX_TRACE_INHERIT

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


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)

2018-04-30