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, из версий, которые теперь свободно доступны через веб.
Доступны следующие консультативные функции:
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.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().
Эта функция была удалена. Нет в окончательной XPG6.
Доступна функция fsync().
Поддерживается Internet Protocol Version 6.
Если доступно это свойство (всегда в 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()
Эта функция была удалена. Нет в окончательной XPG6.
Если доступно это свойство (всегда в 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_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.1-2001), то поддерживаются регулярные выражения POSIX и доступны следующие функции:
regcomp() regerror() regexec() regfree()
Если доступно это свойство (всегда в 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.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()
Имеется всегда (вероятное значение — 0). Присвоение значения специального управляющего символа означает выключение.
Доступны следующие функции:
crypt() encrypt() setkey()
Это свойство подразумевает следующие свойства:
Группа свойств Advanced Realtime подразумевает, что все следующие свойства определены до 200112L:
Это свойство подразумевает, что все следующие свойства определены до 200112L:
Это свойство подразумевает, что все следующие свойства определены до 200112L:
Это свойство подразумевает, что все следующие свойства определены до 200112L:
Доступны следующие функции:
fattach() fdetach() getmsg() getpmsg() ioctl() isastream() putmsg() putpmsg()
Функции, включённые в группу устаревших свойств, которые были обязательны ранее, но в этой версии стали необязательными. Это относится к следующим функциям:
bcmp() bcopy() bzero() ecvt() fcvt() ftime() gcvt() getcwd() index() mktemp() rindex() utimes() wcswcs()
Доступны следующие функции:
mmap() munmap() msync()
Это свойство подразумевает следующие свойства:
Это свойство может подразумевать следующие свойства из групп свойств XSI:
2018-04-30 |