1POSIXOPTIONS(7) Linux Programmer's Manual POSIXOPTIONS(7)
2
3
4
6 posixoptions - optional parts of the POSIX standard
7
9 The POSIX standard (the information below is from POSIX.1-2001)
10 describes a set of behaviours and interfaces for a compliant system.
11 However, many interfaces are optional and there are feature test macros
12 to test the availability of interfaces at compile time, and functions
13 sysconf(3), fpathconf(3), pathconf(3), confstr(3) to do this at run
14 time. From shell scripts one can use getconf(1). For more detail, see
15 sysconf(3).
16
17 We give the name of the POSIX abbreviation, the option, the name of the
18 sysconf() parameter used to inquire about the option, and possibly a
19 very short description. Much more precise detail can be found in the
20 POSIX standard itself, versions of which can nowadays be accessed
21 freely on the web.
22
23 ADV - _POSIX_ADVISORY_INFO - _SC_ADVISORY_INFO
24 The advisory functions
25 posix_fadvise(),
26 posix_fallocate(),
27 posix_memalign(),
28 posix_madvise()
29 are present.
30
31 AIO - _POSIX_ASYNCHRONOUS_IO - _SC_ASYNCHRONOUS_IO
32 The header <aio.h> is present. The functions
33 aio_cancel(),
34 aio_error(),
35 aio_fsync(),
36 aio_read(),
37 aio_return(),
38 aio_suspend(),
39 aio_write(),
40 lio_listio()
41 are present.
42
43 BAR - _POSIX_BARRIERS - _SC_BARRIERS
44 This option implies the _POSIX_THREADS and _POSIX_THREAD_SAFE_FUNCTIONS
45 options. The functions
46 pthread_barrier_destroy(),
47 pthread_barrier_init(),
48 pthread_barrier_wait(),
49 pthread_barrierattr_destroy(),
50 pthread_barrierattr_init()
51 are present.
52
53 --- - POSIX_CHOWN_RESTRICTED
54 If this option is in effect (as it always is under POSIX.1-2001) then
55 only root may change the owner of a file, and non-root can only set the
56 group of a file to one of the groups it belongs to. This affects the
57 functions chown(), fchown().
58
59 CS - _POSIX_CLOCK_SELECTION - _SC_CLOCK_SELECTION
60 This option implies the _POSIX_TIMERS option. The functions
61 pthread_condattr_getclock(),
62 pthread_condattr_setclock(),
63 clock_nanosleep()
64 are present. If CLOCK_REALTIME is changed by the function clock_set‐
65 time(), then this affects all timers set for an absolute time.
66
67 CPT - _POSIX_CPUTIME - _SC_CPUTIME
68 The clockID CLOCK_PROCESS_CPUTIME_ID is supported. The initial value
69 of this clock is 0 for each process. This option implies the
70 _POSIX_TIMERS option. The function clock_getcpuclockid() is present.
71
72 --- - _POSIX_FILE_LOCKING - _SC_FILE_LOCKING
73 This option has been deleted. Not in final XPG6.
74
75 FSC - _POSIX_FSYNC - _SC_FSYNC
76 The function fsync() is present.
77
78 IP6 - _POSIX_IPV6 - _SC_IPV6
79 Internet Protocol Version 6 is supported.
80
81 --- - _POSIX_JOB_CONTROL - _SC_JOB_CONTROL
82 If this option is in effect (as it always is under POSIX.1-2001) then
83 the system implements POSIX-style job control, and the functions
84 setpgid(),
85 tcdrain(),
86 tcflush(),
87 tcgetpgrp(),
88 tcsendbreak(),
89 tcsetattr(),
90 tcsetpgrp()
91 are present.
92
93 MF - _POSIX_MAPPED_FILES - _SC_MAPPED_FILES
94 Shared memory is supported. The include file <sys/mman.h> is present.
95 The functions mmap(), msync(), munmap() are present.
96
97 ML - _POSIX_MEMLOCK - _SC_MEMLOCK
98 Shared memory can be locked into core. The functions mlockall(),
99 munlockall() are present.
100
101 MR/MLR - _POSIX_MEMLOCK_RANGE - _SC_MEMLOCK_RANGE
102 More precisely, ranges can be locked into core. The functions mlock(),
103 munlock() are present.
104
105 MPR - _POSIX_MEMORY_PROTECTION - _SC_MEMORY_PROTECTION
106 The function mprotect() is present.
107
108 MSG - _POSIX_MESSAGE_PASSING - _SC_MESSAGE_PASSING
109 The include file <mqueue.h> is present. The functions
110 mq_close(),
111 mq_getattr(),
112 mq_notify(),
113 mq_open(),
114 mq_receive(),
115 mq_send(),
116 mq_setattr(),
117 mq_unlink()
118 are present.
119
120 MON - _POSIX_MONOTONIC_CLOCK - _SC_MONOTONIC_CLOCK
121 CLOCK_MONOTONIC is supported.
122 This option implies the _POSIX_TIMERS option.
123 Affected functions are
124 aio_suspend(),
125 clock_getres(),
126 clock_gettime(),
127 clock_settime(),
128 timer_create().
129
130 --- - _POSIX_MULTI_PROCESS - _SC_MULTI_PROCESS
131 This option has been deleted. Not in final XPG6.
132
133 --- - _POSIX_NO_TRUNC
134 If this option is in effect (as it always is under POSIX.1-2001) then
135 pathname components longer than NAME_MAX are not truncated, but give an
136 error. This property may be dependent on the path prefix of the compo‐
137 nent.
138
139 PIO - _POSIX_PRIORITIZED_IO - _SC_PRIORITIZED_IO
140 This option says that one can specify priorities for asynchronous I/O.
141 This affects the functions
142 aio_read(),
143 aio_write().
144
145 PS - _POSIX_PRIORITY_SCHEDULING - _SC_PRIORITY_SCHEDULING
146 The include file <sched.h> is present. The functions
147 sched_get_priority_max(),
148 sched_get_priority_min(),
149 sched_getparam(),
150 sched_getscheduler(),
151 sched_rr_get_interval(),
152 sched_setparam(),
153 sched_setscheduler(),
154 sched_yield()
155 are present. If also _POSIX_SPAWN is in effect, then the functions
156 posix_spawnattr_getschedparam(),
157 posix_spawnattr_getschedpolicy(),
158 posix_spawnattr_setschedparam(),
159 posix_spawnattr_setschedpolicy()
160 are present.
161
162 RS - _POSIX_RAW_SOCKETS
163 Raw sockets are supported. Affected functions are getsockopt(), set‐
164 sockopt().
165
166 --- - _POSIX_READER_WRITER_LOCKS - _SC_READER_WRITER_LOCKS
167 This option implies the _POSIX_THREADS option. Conversely, under
168 POSIX.1-2001 the _POSIX_THREADS option implies this option.
169 The functions
170 pthread_rwlock_destroy(),
171 pthread_rwlock_init(),
172 pthread_rwlock_rdlock(),
173 pthread_rwlock_tryrdlock(),
174 pthread_rwlock_trywrlock(),
175 pthread_rwlock_unlock(),
176 pthread_rwlock_wrlock(),
177 pthread_rwlockattr_destroy(),
178 pthread_rwlockattr_init()
179 are present.
180
181 RTS - _POSIX_REALTIME_SIGNALS - _SC_REALTIME_SIGNALS
182 Realtime signals are supported. The functions
183 sigqueue(),
184 sigtimedwait(),
185 sigwaitinfo()
186 are present.
187
188 --- - _POSIX_REGEXP - _SC_REGEXP
189 If this option is in effect (as it always is under POSIX.1-2001) then
190 POSIX regular expressions are supported and the functions
191 regcomp(),
192 regerror(),
193 regexec(),
194 regfree()
195 are present.
196
197 --- - _POSIX_SAVED_IDS - _SC_SAVED_IDS
198 If this option is in effect (as it always is under POSIX.1-2001) then a
199 process has a saved set-user-ID and a saved set-group-ID. Affected
200 functions are
201 exec(),
202 kill(),
203 seteuid(),
204 setegid(),
205 setgid(),
206 setuid().
207
208 SEM - _POSIX_SEMAPHORES - _SC_SEMAPHORES
209 The include file <semaphore.h> is present. The functions
210 sem_close(),
211 sem_destroy(),
212 sem_getvalue(),
213 sem_init(),
214 sem_open(),
215 sem_post(),
216 sem_trywait(),
217 sem_unlink(),
218 sem_wait()
219 are present.
220
221 SHM - _POSIX_SHARED_MEMORY_OBJECTS - _SC_SHARED_MEMORY_OBJECTS
222 The functions
223 mmap(),
224 munmap(),
225 shm_open(),
226 shm_unlink()
227 are present.
228
229 --- - _POSIX_SHELL - _SC_SHELL
230 If this option is in effect (as it always is under POSIX.1-2001), the
231 function system() is present.
232
233 SPN - _POSIX_SPAWN - _SC_SPAWN
234 This option describes support for process creation in a context where
235 it is difficult or impossible to use fork(), e.g. because no MMU is
236 present. If _POSIX_SPAWN is in effect, then the include file <spawn.h>
237 and the functions
238 posix_spawn(),
239 posix_spawn_file_actions_addclose(),
240 posix_spawn_file_actions_adddup2(),
241 posix_spawn_file_actions_addopen(),
242 posix_spawn_file_actions_destroy(),
243 posix_spawn_file_actions_init(),
244 posix_spawnattr_destroy(),
245 posix_spawnattr_getsigdefault(),
246 posix_spawnattr_getflags(),
247 posix_spawnattr_getpgroup(),
248 posix_spawnattr_getsigmask(),
249 posix_spawnattr_init(),
250 posix_spawnattr_setsigdefault(),
251 posix_spawnattr_setflags(),
252 posix_spawnattr_setpgroup(),
253 posix_spawnattr_setsigmask(),
254 posix_spawnp()
255 are present. If also _POSIX_PRIORITY_SCHEDULING is in effect, then the
256 functions
257 posix_spawnattr_getschedparam(),
258 posix_spawnattr_getschedpolicy(),
259 posix_spawnattr_setschedparam(),
260 posix_spawnattr_setschedpolicy()
261 are present.
262
263 SPI - _POSIX_SPIN_LOCKS - _SC_SPIN_LOCKS
264 This option implies the _POSIX_THREADS and _POSIX_THREAD_SAFE_FUNCTIONS
265 options. The functions
266 pthread_spin_destroy(),
267 pthread_spin_init(),
268 pthread_spin_lock(),
269 pthread_spin_trylock(),
270 pthread_spin_unlock()
271 are present.
272
273 SS - _POSIX_SPORADIC_SERVER - _SC_SPORADIC_SERVER
274 The scheduling policy SCHED_SPORADIC is supported. This option implies
275 the _POSIX_PRIORITY_SCHEDULING option. Affected functions are
276 sched_setparam(),
277 sched_setscheduler().
278
279 SIO - _POSIX_SYNCHRONIZED_IO - _SC_SYNCHRONIZED_IO
280 Affected functions are open(), msync(), fsync(), fdatasync().
281
282 TSA - _POSIX_THREAD_ATTR_STACKADDR - _SC_THREAD_ATTR_STACKADDR
283 Affected functions are
284 pthread_attr_getstack(),
285 pthread_attr_getstackaddr(),
286 pthread_attr_setstack(),
287 pthread_attr_setstackaddr().
288
289 TSS - _POSIX_THREAD_ATTR_STACKSIZE - _SC_THREAD_ATTR_STACKSIZE
290 Affected functions are
291 pthread_attr_getstack(),
292 pthread_attr_getstacksize(),
293 pthread_attr_setstack(),
294 pthread_attr_setstacksize().
295
296 TCT - _POSIX_THREAD_CPUTIME - _SC_THREAD_CPUTIME
297 The clockID CLOCK_THREAD_CPUTIME_ID is supported. This option implies
298 the _POSIX_TIMERS option. Affected functions are
299 pthread_getcpuclockid(),
300 clock_getres(),
301 clock_gettime(),
302 clock_settime(),
303 timer_create().
304
305 TPI - _POSIX_THREAD_PRIO_INHERIT - _SC_THREAD_PRIO_INHERIT
306 Affected functions are
307 pthread_mutexattr_getprotocol(),
308 pthread_mutexattr_setprotocol().
309
310 TPP - _POSIX_THREAD_PRIO_PROTECT - _SC_THREAD_PRIO_PROTECT
311 Affected functions are
312 pthread_mutex_getprioceiling(),
313 pthread_mutex_setprioceiling(),
314 pthread_mutexattr_getprioceiling(),
315 pthread_mutexattr_getprotocol(),
316 pthread_mutexattr_setprioceiling(),
317 pthread_mutexattr_setprotocol().
318
319 TPS - _POSIX_THREAD_PRIORITY_SCHEDULING - _SC_THREAD_PRIORITY_SCHEDULING
320 If this option is in effect, the different threads inside a process can
321 run with different priorities and/or different schedulers. Affected
322 functions are
323 pthread_attr_getinheritsched(),
324 pthread_attr_getschedpolicy(),
325 pthread_attr_getscope(),
326 pthread_attr_setinheritsched(),
327 pthread_attr_setschedpolicy(),
328 pthread_attr_setscope(),
329 pthread_getschedparam(),
330 pthread_setschedparam(),
331 pthread_setschedprio().
332
333 TSH - _POSIX_THREAD_PROCESS_SHARED - _SC_THREAD_PROCESS_SHARED
334 Affected functions are
335 pthread_barrierattr_getpshared(),
336 pthread_barrierattr_setpshared(),
337 pthread_condattr_getpshared(),
338 pthread_condattr_setpshared(),
339 pthread_mutexattr_getpshared(),
340 pthread_mutexattr_setpshared(),
341 pthread_rwlockattr_getpshared(),
342 pthread_rwlockattr_setpshared().
343
344 TSF - _POSIX_THREAD_SAFE_FUNCTIONS - _SC_THREAD_SAFE_FUNCTIONS
345 Affected functions are
346 readdir_r(),
347 getgrgid_r(),
348 getgrnam_r(),
349 getpwnam_r(),
350 getpwuid_r(),
351 flockfile(),
352 ftrylockfile(),
353 funlockfile(),
354 getc_unlocked(),
355 getchar_unlocked(),
356 putc_unlocked(),
357 putchar_unlocked(),
358 rand_r(),
359 strerror_r(),
360 strtok_r(),
361 asctime_r(),
362 ctime_r(),
363 gmtime_r(),
364 localtime_r().
365
366 TSP - _POSIX_THREAD_SPORADIC_SERVER - _SC_THREAD_SPORADIC_SERVER
367 This option implies the _POSIX_THREAD_PRIORITY_SCHEDULING option.
368 Affected functions are
369 sched_getparam(),
370 sched_setparam(),
371 sched_setscheduler().
372
373 THR - _POSIX_THREADS - _SC_THREADS
374 Basic support for POSIX threads is available. The functions
375 pthread_atfork(),
376 pthread_attr_destroy(),
377 pthread_attr_getdetachstate(),
378 pthread_attr_getschedparam(),
379 pthread_attr_init(),
380 pthread_attr_setdetachstate(),
381 pthread_attr_setschedparam(),
382 pthread_cancel(),
383 pthread_cleanup_push(),
384 pthread_cleanup_pop(),
385 pthread_cond_broadcast(),
386 pthread_cond_destroy(),
387 pthread_cond_init(),
388 pthread_cond_signal(),
389 pthread_cond_timedwait(),
390 pthread_cond_wait(),
391 pthread_condattr_destroy(),
392 pthread_condattr_init(),
393 pthread_create(),
394 pthread_detach(),
395 pthread_equal(),
396 pthread_exit(),
397 pthread_getspecific(),
398 pthread_join(),
399 pthread_key_create(),
400 pthread_key_delete(),
401 pthread_mutex_destroy(),
402 pthread_mutex_init(),
403 pthread_mutex_lock(),
404 pthread_mutex_trylock(),
405 pthread_mutex_unlock(),
406 pthread_mutexattr_destroy(),
407 pthread_mutexattr_init(),
408 pthread_once(),
409 pthread_rwlock_destroy(),
410 pthread_rwlock_init(),
411 pthread_rwlock_rdlock(),
412 pthread_rwlock_tryrdlock(),
413 pthread_rwlock_trywrlock(),
414 pthread_rwlock_unlock(),
415 pthread_rwlock_wrlock(),
416 pthread_rwlockattr_destroy(),
417 pthread_rwlockattr_init(),
418 pthread_self(),
419 pthread_setcancelstate(),
420 pthread_setcanceltype(),
421 pthread_setspecific(),
422 pthread_testcancel()
423 are present.
424
425 TMO - _POSIX_TIMEOUTS - _SC_TIMEOUTS
426 The functions
427 mq_timedreceive(),
428 mq_timedsend(),
429 pthread_mutex_timedlock(),
430 pthread_rwlock_timedrdlock(),
431 pthread_rwlock_timedwrlock(),
432 sem_timedwait(),
433 posix_trace_timedgetnext_event()
434 are present.
435
436 TMR - _POSIX_TIMERS - _SC_TIMERS
437 The functions
438 clock_getres(),
439 clock_gettime(),
440 clock_settime(),
441 nanosleep(),
442 timer_create(),
443 timer_delete(),
444 timer_gettime(),
445 timer_getoverrun(),
446 timer_settime()
447 are present.
448
449 TRC - _POSIX_TRACE - _SC_TRACE
450 POSIX tracing is available. The functions
451 posix_trace_attr_destroy(),
452 posix_trace_attr_getclockres(),
453 posix_trace_attr_getcreatetime(),
454 posix_trace_attr_getgenversion(),
455 posix_trace_attr_getmaxdatasize(),
456 posix_trace_attr_getmaxsystemeventsize(),
457 posix_trace_attr_getmaxusereventsize(),
458 posix_trace_attr_getname(),
459 posix_trace_attr_getstreamfullpolicy(),
460 posix_trace_attr_getstreamsize(),
461 posix_trace_attr_init(),
462 posix_trace_attr_setmaxdatasize(),
463 posix_trace_attr_setname(),
464 posix_trace_attr_setstreamsize(),
465 posix_trace_attr_setstreamfullpolicy(),
466 posix_trace_clear(),
467 posix_trace_create(),
468 posix_trace_event(),
469 posix_trace_eventid_equal(),
470 posix_trace_eventid_get_name(),
471 posix_trace_eventid_open(),
472 posix_trace_eventtypelist_getnext_id(),
473 posix_trace_eventtypelist_rewind(),
474 posix_trace_flush(),
475 posix_trace_get_attr(),
476 posix_trace_get_status(),
477 posix_trace_getnext_event(),
478 posix_trace_shutdown(),
479 posix_trace_start(),
480 posix_trace_stop(),
481 posix_trace_trygetnext_event()
482 are present.
483
484 TEF - _POSIX_TRACE_EVENT_FILTER - _SC_TRACE_EVENT_FILTER
485 This option implies the _POSIX_TRACE option. The functions
486 posix_trace_eventset_add(),
487 posix_trace_eventset_del(),
488 posix_trace_eventset_empty(),
489 posix_trace_eventset_fill(),
490 posix_trace_eventset_ismember(),
491 posix_trace_get_filter(),
492 posix_trace_set_filter(),
493 posix_trace_trid_eventid_open()
494 are present.
495
496 TRI - _POSIX_TRACE_INHERIT - _SC_TRACE_INHERIT
497 Tracing children of the traced process is supported. This option
498 implies the _POSIX_TRACE option. The functions
499 posix_trace_attr_getinherited(),
500 posix_trace_attr_setinherited()
501 are present.
502
503 TRL - _POSIX_TRACE_LOG - _SC_TRACE_LOG
504 This option implies the _POSIX_TRACE option. The functions
505 posix_trace_attr_getlogfullpolicy(),
506 posix_trace_attr_getlogsize(),
507 posix_trace_attr_setlogfullpolicy(),
508 posix_trace_attr_setlogsize(),
509 posix_trace_close(),
510 posix_trace_create_withlog(),
511 posix_trace_open(),
512 posix_trace_rewind()
513 are present.
514
515 TYM - _POSIX_TYPED_MEMORY_OBJECTS - _SC_TYPED_MEMORY_OBJECT
516 The functions
517 posix_mem_offset(),
518 posix_typed_mem_get_info(),
519 posix_typed_mem_open()
520 are present.
521
522 --- - _POSIX_VDISABLE
523 Always present (probably 0). Value to set a changeable special control
524 character to indicate that it is disabled.
525
526
528 _XOPEN_CRYPT, _XOPEN_LEGACY, _XOPEN_REALTIME, _XOPEN_REALTIME_THREADS,
529 _XOPEN_UNIX.
530
531
532
534 sysconf(3)
535
536
537
538POSIX 2003-08-24 POSIXOPTIONS(7)