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()
Это
свойство
подразумевает
следующие
свойства:
-
_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
Группа
свойств 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
Это
свойство
подразумевает,
что все
следующие
свойства
определены
до 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()
Функции,
включённые
в группу
устаревших
свойств,
которые
были
обязательны
ранее, но в
этой
версии
стали
необязательными.
Это
относится
к
следующим
функциям:
bcmp()
bcopy()
bzero()
ecvt()
fcvt()
ftime()
gcvt()
getwd()
index()
mktemp()
rindex()
utimes()
wcswcs()
Доступны
следующие
функции:
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)
- Realtime (_XOPEN_REALTIME)
- Advanced Realtime (ADB)
- Realtime Threads (_XOPEN_REALTIME_THREADS)
- Advanced Realtime Threads (ADVANCED REALTIME
THREADS)
- Tracing (TRACING)
- XSI Streams (STREAMS)
- Legacy (_XOPEN_LEGACY)
sysconf(3),
standards(7)
Русский
перевод
этой
страницы
руководства
был сделан
Alexey, Azamat Hackimov <
[email protected]>, kogamatranslator49
<
[email protected]>, Kogan, Max Is <
[email protected]>, Yuri
Kozlov <
[email protected]> и Иван
Павлов <
[email protected]>
Этот
перевод
является
бесплатной
документацией;
прочитайте
Стандартную
общественную
лицензию GNU
версии 3
или более
позднюю,
чтобы
узнать об
условиях
авторского
права. Мы не
несем
НИКАКОЙ
ОТВЕТСТВЕННОСТИ.
Если вы
обнаружите
ошибки в
переводе
этой
страницы
руководства,
пожалуйста,
отправьте
электронное
письмо на
[email protected]