posixoptions – Options de la norme POSIX
La norme POSIX (les informations ci-dessous sont extraites de la
spécification POSIX.1-2001) décrit un ensemble de comportements
et d'interfaces pour la conformité d'un système. Toutefois,
beaucoup d'interfaces sont facultatives et il existe des macros de test de
fonctionnalité pour tester la disponibilité des interfaces
à la compilation et les fonctions
sysconf(3),
fpathconf(3),
pathconf(3) et
confstr(3) pour effectuer la
même chose à l'exécution. Dans des scripts shell, vous
pouvez utiliser
getconf(1). Pour plus de détails, consultez
sysconf(3).
Nous donnerons le nom de l'abréviation POSIX, l'option, le nom du
paramètre passé à
sysconf(3) pour
s'enquérir de l'option et éventuellement une très courte
description. Des détails plus précis pourront être
trouvés dans la norme POSIX elle-même, aujourd'hui librement
accessible sur le web.
Les fonctions de renseignement suivantes sont présentes :
posix_fadvise()
posix_fallocate()
posix_memalign()
posix_madvise()
L'en-tête
<aio.h> est présent. Les fonctions
suivantes sont présentes :
aio_cancel()
aio_error()
aio_fsync()
aio_read()
aio_return()
aio_suspend()
aio_write()
lio_listio()
Cette option implique les options
_POSIX_THREADS et
_POSIX_THREAD_SAFE_FUNCTIONS. Les fonctions suivantes sont
présentes :
pthread_barrier_destroy()
pthread_barrier_init()
pthread_barrier_wait()
pthread_barrierattr_destroy()
pthread_barrierattr_init()
Si cette option est en vigueur (comme c'est toujours le cas sous POSIX.1-2001),
seul le superutilisateur peut modifier le propriétaire d'un fichier,
les utilisateurs ne pouvant que modifier le groupe d'un fichier vers un des
groupes auxquels ils appartiennent. Cela affecte les fonctions
suivantes :
chown()
fchown()
Cette option implique l'option
_POSIX_TIMERS. Les fonctions suivantes
sont présentes :
pthread_condattr_getclock()
pthread_condattr_setclock()
clock_nanosleep()
Si
CLOCK_REALTIME est modifiée par la fonction
clock_settime(), cela concerne tous les temporisateurs
configurés pour une heure absolue.
L'identifiant d'horloge
CLOCK_PROCESS_CPUTIME_ID est pris en charge. La
valeur initiale de cette horloge est 0 pour chaque processus. Cette
option implique l'option
_POSIX_TIMERS. La fonction
clock_getcpuclockid() est présente.
Cette option a été supprimée et n’existe pas dans la
norme finale XPG6.
La fonction
fsync() est présente.
Internet Protocol Version 6 est prise en charge.
Si cette option est en vigueur (comme c'est toujours le cas sous POSIX.1-2001),
le système implémente le contrôle de travaux de style
POSIX et les fonctions suivantes sont présentes :
setpgid()
tcdrain()
tcflush()
tcgetpgrp()
tcsendbreak()
tcsetattr()
tcsetpgrp()
La mémoire partagée est gérée. Le fichier
d'en-tête
<sys/mman.h> est présent. Les fonctions
suivantes sont présentes :
mmap()
msync()
munmap()
La mémoire partagée peut être verrouillée par le
noyau. Les fonctions suivantes sont présentes :
mlockall()
munlockall()
Plus précisément, des intervalles peuvent être
verrouillés par le noyau. Les fonctions suivantes sont
présentes :
mlock()
munlock()
La fonction
mprotect() est présente.
Le fichier d'en-tête
<mqueue.h> est présent. Les
fonctions suivantes sont présentes :
mq_close()
mq_getattr()
mq_notify()
mq_open()
mq_receive()
mq_send()
mq_setattr()
mq_unlink()
CLOCK_MONOTONIC est gérée. Cette option implique l'option
_POSIX_TIMERS. Les fonctions suivantes sont affectées :
aio_suspend()
clock_getres()
clock_gettime()
clock_settime()
timer_create()
Cette option a été supprimée et n’existe pas dans la
norme finale XPG6.
Si cette option est en vigueur (comme c'est toujours le cas sous POSIX.1-2001),
les éléments de nom de chemin plus long que
NAME_MAX ne
sont pas tronqués, mais provoquent une erreur. Cette
propriété peut être dépendante du préfixe
du chemin de l'élément.
Cette option indique que l'on peut spécifier des priorités pour
les entrées et sorties asynchrones. Cela affecte les fonctions :
aio_read()
aio_write()
Le fichier d'en-tête
<sched.h> est présent. Les
fonctions suivantes sont présentes :
sched_get_priority_max()
sched_get_priority_min()
sched_getparam()
sched_getscheduler()
sched_rr_get_interval()
sched_setparam()
sched_setscheduler()
sched_yield()
Si
_POSIX_SPAWN est également en vigueur, les fonctions suivantes
sont présentes :
posix_spawnattr_getschedparam()
posix_spawnattr_getschedpolicy()
posix_spawnattr_setschedparam()
posix_spawnattr_setschedpolicy()
Les sockets bruts (raw) sont gérés. Les fonctions suivantes sont
affectées :
getsockopt()
setsockopt()
Cette option implique l'option
_POSIX_THREADS. Réciproquement,
dans la spécification POSIX.1-2001, l'option
_POSIX_THREADS
implique celle-ci.
Les fonctions suivantes sont présentes :
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()
Les signaux temps réel sont gérés. Les fonctions suivantes
sont présentes :
sigqueue()
sigtimedwait()
sigwaitinfo()
Si cette option est en vigueur (comme c'est toujours le cas sous POSIX.1-2001),
les expressions rationnelles POSIX sont prises en charge et les fonctions
suivantes sont présentes :
regcomp()
regerror()
regexec()
regfree()
Si cette option est en vigueur (comme c'est toujours le cas sous POSIX.1-2001),
un processus a un Set-UID et un Set-GID sauvegardé. Les fonctions
suivantes sont affectées :
exec()
kill()
seteuid()
setegid()
setgid()
setuid()
Le fichier d'en-tête
<semaphore.h> est présent. Les
fonctions suivantes sont présentes :
sem_close()
sem_destroy()
sem_getvalue()
sem_init()
sem_open()
sem_post()
sem_trywait()
sem_unlink()
sem_wait()
Les fonctions suivantes sont présentes :
mmap()
munmap()
shm_open()
shm_unlink()
Si cette option est en vigueur (comme c'est toujours le cas sous POSIX.1-2001),
la fonction
system() est présente.
Cette option décrit la gestion de la création d'un processus dans
un contexte où il est difficile voire impossible d'utiliser
fork(), par exemple lorsqu'aucun NMU n'est présent.
Si
_POSIX_SPAWN est également en vigueur, alors le fichier
d’en-tête
<spawn.h> et les fonctions suivantes sont
présents :
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()
Si
_POSIX_PRIORITY_SCHEDULING est également en vigueur, les
fonctions suivantes sont présentes :
posix_spawnattr_getschedparam()
posix_spawnattr_getschedpolicy()
posix_spawnattr_setschedparam()
posix_spawnattr_setschedpolicy()
Cette option implique les options
_POSIX_THREADS et
_POSIX_THREAD_SAFE_FUNCTIONS. Les fonctions suivantes sont
présentes :
pthread_spin_destroy()
pthread_spin_init()
pthread_spin_lock()
pthread_spin_trylock()
pthread_spin_unlock()
La politique d'ordonnancement
SCHED_SPORADIC est prise en charge. Cette
option implique l'option
_POSIX_PRIORITY_SCHEDULING. Les fonctions
suivantes sont affectées :
sched_setparam()
sched_setscheduler()
Les fonctions suivantes sont affectées :
open()
msync()
fsync()
fdatasync()
Les fonctions suivantes sont affectées :
pthread_attr_getstack()
pthread_attr_getstackaddr()
pthread_attr_setstack()
pthread_attr_setstackaddr()
Les fonctions suivantes sont affectées :
pthread_attr_getstack()
pthread_attr_getstacksize()
pthread_attr_setstack()
pthread_attr_setstacksize()
L'identifiant d'horloge
CLOCK_THREAD_CPUTIME_ID est géré.
Cette option implique l'option
_POSIX_TIMERS. Les fonctions suivantes
sont affectées :
pthread_getcpuclockid()
clock_getres()
clock_gettime()
clock_settime()
timer_create()
Les fonctions suivantes sont affectées :
pthread_mutexattr_getprotocol()
pthread_mutexattr_setprotocol()
Les fonctions suivantes sont affectées :
pthread_mutex_getprioceiling()
pthread_mutex_setprioceiling()
pthread_mutexattr_getprioceiling()
pthread_mutexattr_getprotocol()
pthread_mutexattr_setprioceiling()
pthread_mutexattr_setprotocol()
Si cette option est en vigueur, les différents processus légers
(« threads ») à l'intérieur d'un
processus peuvent être exécutés avec différentes
priorités et/ou par différents ordonnanceurs. Les fonctions
suivantes sont affectées :
pthread_attr_getinheritsched()
pthread_attr_getschedpolicy()
pthread_attr_getscope()
pthread_attr_setinheritsched()
pthread_attr_setschedpolicy()
pthread_attr_setscope()
pthread_getschedparam()
pthread_setschedparam()
pthread_setschedprio()
Les fonctions suivantes sont affectées :
pthread_barrierattr_getpshared()
pthread_barrierattr_setpshared()
pthread_condattr_getpshared()
pthread_condattr_setpshared()
pthread_mutexattr_getpshared()
pthread_mutexattr_setpshared()
pthread_rwlockattr_getpshared()
pthread_rwlockattr_setpshared()
Les fonctions suivantes sont affectées :
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()
Cette option implique l'option
_POSIX_THREAD_PRIORITY_SCHEDULING. Les
fonctions suivantes sont affectées :
sched_getparam()
sched_setparam()
sched_setscheduler()
La gestion de base de processus légers POSIX est disponible. Les
fonctions suivantes sont présentes :
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()
Les fonctions suivantes sont présentes :
mq_timedreceive()
mq_timedsend()
pthread_mutex_timedlock()
pthread_rwlock_timedrdlock()
pthread_rwlock_timedwrlock()
sem_timedwait()
posix_trace_timedgetnext_event()
Les fonctions suivantes sont présentes :
clock_getres()
clock_gettime()
clock_settime()
nanosleep()
timer_create()
timer_delete()
timer_gettime()
timer_getoverrun()
timer_settime()
Le traçage POSIX est disponible. Les fonctions suivantes sont
présentes :
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()
Cette option implique l'option
_POSIX_TRACE. Les fonctions suivantes sont
présentes :
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()
Le traçage d'enfants de processus tracés est pris en charge. Cette
option implique l'option
_POSIX_TRACE. Les fonctions suivantes sont
présentes :
posix_trace_attr_getinherited()
posix_trace_attr_setinherited()
Cette option implique l'option
_POSIX_TRACE. Les fonctions suivantes sont
présentes :
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()
Les fonctions suivantes sont présentes :
posix_mem_offset()
posix_typed_mem_get_info()
posix_typed_mem_open()
Toujours présente (probablement 0). Valeur pour positionner un
caractère de contrôle spécial, modifiable pour indiquer
qu'il est désactivé.
Les fonctions suivantes sont présentes :
crypt()
encrypt()
setkey()
Cette option implique les options suivantes :
-
_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
Le groupe d’options temps réel amélioré implique que
les options suivantes soient définies pour 200112L :
- _POSIX_ADVISORY_INFO
- _POSIX_CLOCK_SELECTION
- (implique _POSIX_TIMERS)
- _POSIX_CPUTIME
- (implique _POSIX_TIMERS)
- _POSIX_MONOTONIC_CLOCK
- (implique _POSIX_TIMERS)
- _POSIX_SPAWN
- _POSIX_SPORADIC_SERVER
- (implique _POSIX_THREAD_PRIORITY_SCHEDULING)
- _POSIX_TIMEOUTS
- _POSIX_TYPED_MEMORY_OBJECTS
Cette option implique que les options suivantes soient toutes définies
dans 200112L :
- _POSIX_THREAD_PRIO_INHERIT
- _POSIX_THREAD_PRIO_PROTECT
- _POSIX_THREAD_PRIORITY_SCHEDULING
Cette option implique que les options suivantes soient toutes définies
dans 200112L :
- _POSIX_BARRIERS
- (implique _POSIX_THREADS,
_POSIX_THREAD_SAFE_FUNCTIONS)
- _POSIX_SPIN_LOCKS
- (implique _POSIX_THREADS,
_POSIX_THREAD_SAFE_FUNCTIONS)
- _POSIX_THREAD_CPUTIME
- (implique _POSIX_TIMERS)
- _POSIX_THREAD_SPORADIC_SERVER
- (implique _POSIX_THREAD_PRIORITY_SCHEDULING)
Cette option implique que les options suivantes soient toutes définies
dans 200112L :
- _POSIX_TRACE
- _POSIX_TRACE_EVENT_FILTER
- _POSIX_TRACE_LOG
- _POSIX_TRACE_INHERIT
Les fonctions suivantes sont présentes :
fattach()
fdetach()
getmsg()
getpmsg()
ioctl()
isastream()
putmsg()
putpmsg()
Les fonctions incluses dans le groupe d’options patrimonial
étaient auparavant obligatoires, mais sont facultatives dans cette
version. Les fonctions suivantes sont présentes :
bcmp()
bcopy()
bzero()
ecvt()
fcvt()
ftime()
gcvt()
getwd()
index()
mktemp()
rindex()
utimes()
wcswcs()
Les fonctions suivantes sont présentes :
mmap()
munmap()
msync()
Cette option implique les options suivantes :
- _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
Cette option peut impliquer les options suivantes des groupes d’options
XSI :
- Chiffrement (_XOPEN_CRYPT)
- Temps réel (_XOPEN_REALTIME)
- Temps réel amélioré (ADB)
- Threads temps réel
(_XOPEN_REALTIME_THREADS)
- Threads temps réel amélioré
(ADVANCED REALTIME THREADS)
- Traçage (TRACING)
- Flux XSI (STREAMS)
- Patrimoine (_XOPEN_LEGACY)
sysconf(3),
standards(7)
La traduction française de cette page de manuel a été
créée par Christophe Blaess
<
https://www.blaess.fr/christophe/>, Stéphan Rafin
<
[email protected]>, Thierry Vignaud
<
[email protected]>, François Micaux, Alain Portal
<
[email protected]>, Jean-Philippe Guérard
<
[email protected]>, Jean-Luc Coulon (f5ibh)
<
[email protected]>, Julien Cristau
<
[email protected]>, Thomas Huriaux <
[email protected]>,
Nicolas François <
[email protected]>, Florentin
Duneau <
[email protected]>, Simon Paillard
<
[email protected]>, Denis Barbier
<
[email protected]>, David Prévot <
[email protected]> et
Jean-Paul Guillonneau <
[email protected]>
Cette traduction est une documentation libre ; veuillez vous reporter
à la
GNU
General Public License version 3 concernant les conditions de copie
et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel,
veuillez envoyer un message à
[email protected]