1unistd.h(0P) POSIX Programmer's Manual unistd.h(0P)
2
3
4
6 This manual page is part of the POSIX Programmer's Manual. The Linux
7 implementation of this interface may differ (consult the corresponding
8 Linux manual page for details of Linux behavior), or the interface may
9 not be implemented on Linux.
10
11
13 unistd.h — standard symbolic constants and types
14
16 #include <unistd.h>
17
19 The <unistd.h> header defines miscellaneous symbolic constants and
20 types, and declares miscellaneous functions. The actual values of the
21 constants are unspecified except as shown. The contents of this header
22 are shown below.
23
24 Version Test Macros
25 The <unistd.h> header shall define the following symbolic constants.
26 The values shall be suitable for use in #if preprocessing directives.
27
28 _POSIX_VERSION
29 Integer value indicating version of this standard (C-language
30 binding) to which the implementation conforms. For implementa‐
31 tions conforming to POSIX.1‐2008, the value shall be 200809L.
32
33 _POSIX2_VERSION
34 Integer value indicating version of the Shell and Utilities vol‐
35 ume of POSIX.1 to which the implementation conforms. For imple‐
36 mentations conforming to POSIX.1‐2008, the value shall be
37 200809L. For profile implementations that define _POSIX_SUBPRO‐
38 FILE (see Section 2.1.5.1, Subprofiling Considerations) in
39 <unistd.h>, POSIX2_VERSION may be left undefined or be defined
40 with the value −1 to indicate that the Shell and Utilities volume
41 of POSIX.1 is not supported. In this case, a call to
42 sysconf(_SC_2_VERSION) shall return either 200809L or −1 indicat‐
43 ing that the Shell and Utilities volume of POSIX.1 is or is not,
44 respectively, supported at runtime.
45
46 The <unistd.h> header shall define the following symbolic constant only
47 if the implementation supports the XSI option; see Section 2.1.4, XSI
48 Conformance. If defined, its value shall be suitable for use in #if
49 preprocessing directives.
50
51 _XOPEN_VERSION
52 Integer value indicating version of the X/Open Portability Guide
53 to which the implementation conforms. The value shall be 700.
54
55 Constants for Options and Option Groups
56 The following symbolic constants, if defined in <unistd.h>, shall have
57 a value of −1, 0, or greater, unless otherwise specified below. For
58 profile implementations that define _POSIX_SUBPROFILE (see Section
59 2.1.5.1, Subprofiling Considerations) in <unistd.h>, constants
60 described below as always having a value greater than zero need not be
61 defined and, if defined, may have a value of −1, 0, or greater. The
62 values shall be suitable for use in #if preprocessing directives.
63
64 If a symbolic constant is not defined or is defined with the value −1,
65 the option is not supported for compilation. If it is defined with a
66 value greater than zero, the option shall always be supported when the
67 application is executed. If it is defined with the value zero, the
68 option shall be supported for compilation and might or might not be
69 supported at runtime. See Section 2.1.6, Options for further informa‐
70 tion about the conformance requirements of these three categories of
71 support.
72
73 _POSIX_ADVISORY_INFO
74 The implementation supports the Advisory Information option. If
75 this symbol is defined in <unistd.h>, it shall be defined to be
76 −1, 0, or 200809L. The value of this symbol reported by sysconf()
77 shall either be −1 or 200809L.
78
79 _POSIX_ASYNCHRONOUS_IO
80 The implementation supports asynchronous input and output. This
81 symbol shall always be set to the value 200809L.
82
83 _POSIX_BARRIERS
84 The implementation supports barriers. This symbol shall always
85 be set to the value 200809L.
86
87 _POSIX_CHOWN_RESTRICTED
88 The use of chown() and fchown() is restricted to a process with
89 appropriate privileges, and to changing the group ID of a file
90 only to the effective group ID of the process or to one of its
91 supplementary group IDs. This symbol shall be defined with a
92 value other than −1.
93
94 _POSIX_CLOCK_SELECTION
95 The implementation supports clock selection. This symbol shall
96 always be set to the value 200809L.
97
98 _POSIX_CPUTIME
99 The implementation supports the Process CPU-Time Clocks option.
100 If this symbol is defined in <unistd.h>, it shall be defined to
101 be −1, 0, or 200809L. The value of this symbol reported by
102 sysconf() shall either be −1 or 200809L.
103
104 _POSIX_FSYNC
105 The implementation supports the File Synchronization option. If
106 this symbol is defined in <unistd.h>, it shall be defined to be
107 −1, 0, or 200809L. The value of this symbol reported by sysconf()
108 shall either be −1 or 200809L.
109
110 _POSIX_IPV6
111 The implementation supports the IPv6 option. If this symbol is
112 defined in <unistd.h>, it shall be defined to be −1, 0, or
113 200809L. The value of this symbol reported by sysconf() shall
114 either be −1 or 200809L.
115
116 _POSIX_JOB_CONTROL
117 The implementation supports job control. This symbol shall always
118 be set to a value greater than zero.
119
120 _POSIX_MAPPED_FILES
121 The implementation supports memory mapped Files. This symbol
122 shall always be set to the value 200809L.
123
124 _POSIX_MEMLOCK
125 The implementation supports the Process Memory Locking option.
126 If this symbol is defined in <unistd.h>, it shall be defined to
127 be −1, 0, or 200809L. The value of this symbol reported by
128 sysconf() shall either be −1 or 200809L.
129
130 _POSIX_MEMLOCK_RANGE
131 The implementation supports the Range Memory Locking option. If
132 this symbol is defined in <unistd.h>, it shall be defined to be
133 −1, 0, or 200809L. The value of this symbol reported by sysconf()
134 shall either be −1 or 200809L.
135
136 _POSIX_MEMORY_PROTECTION
137 The implementation supports memory protection. This symbol shall
138 always be set to the value 200809L.
139
140 _POSIX_MESSAGE_PASSING
141 The implementation supports the Message Passing option. If this
142 symbol is defined in <unistd.h>, it shall be defined to be −1, 0,
143 or 200809L. The value of this symbol reported by sysconf() shall
144 either be −1 or 200809L.
145
146 _POSIX_MONOTONIC_CLOCK
147 The implementation supports the Monotonic Clock option. If this
148 symbol is defined in <unistd.h>, it shall be defined to be −1, 0,
149 or 200809L. The value of this symbol reported by sysconf() shall
150 either be −1 or 200809L.
151
152 _POSIX_NO_TRUNC
153 Pathname components longer than {NAME_MAX} generate an error.
154 This symbol shall be defined with a value other than −1.
155
156 _POSIX_PRIORITIZED_IO
157 The implementation supports the Prioritized Input and Output
158 option. If this symbol is defined in <unistd.h>, it shall be
159 defined to be −1, 0, or 200809L. The value of this symbol
160 reported by sysconf() shall either be −1 or 200809L.
161
162 _POSIX_PRIORITY_SCHEDULING
163 The implementation supports the Process Scheduling option. If
164 this symbol is defined in <unistd.h>, it shall be defined to be
165 −1, 0, or 200809L. The value of this symbol reported by sysconf()
166 shall either be −1 or 200809L.
167
168 _POSIX_RAW_SOCKETS
169 The implementation supports the Raw Sockets option. If this sym‐
170 bol is defined in <unistd.h>, it shall be defined to be −1, 0, or
171 200809L. The value of this symbol reported by sysconf() shall
172 either be −1 or 200809L.
173
174 _POSIX_READER_WRITER_LOCKS
175 The implementation supports read-write locks. This symbol shall
176 always be set to the value 200809L.
177
178 _POSIX_REALTIME_SIGNALS
179 The implementation supports realtime signals. This symbol shall
180 always be set to the value 200809L.
181
182 _POSIX_REGEXP
183 The implementation supports the Regular Expression Handling
184 option. This symbol shall always be set to a value greater than
185 zero.
186
187 _POSIX_SAVED_IDS
188 Each process has a saved set-user-ID and a saved set-group-ID.
189 This symbol shall always be set to a value greater than zero.
190
191 _POSIX_SEMAPHORES
192 The implementation supports semaphores. This symbol shall always
193 be set to the value 200809L.
194
195 _POSIX_SHARED_MEMORY_OBJECTS
196 The implementation supports the Shared Memory Objects option. If
197 this symbol is defined in <unistd.h>, it shall be defined to be
198 −1, 0, or 200809L. The value of this symbol reported by sysconf()
199 shall either be −1 or 200809L.
200
201 _POSIX_SHELL
202 The implementation supports the POSIX shell. This symbol shall
203 always be set to a value greater than zero.
204
205 _POSIX_SPAWN
206 The implementation supports the Spawn option. If this symbol is
207 defined in <unistd.h>, it shall be defined to be −1, 0, or
208 200809L. The value of this symbol reported by sysconf() shall
209 either be −1 or 200809L.
210
211 _POSIX_SPIN_LOCKS
212 The implementation supports spin locks. This symbol shall always
213 be set to the value 200809L.
214
215 _POSIX_SPORADIC_SERVER
216 The implementation supports the Process Sporadic Server option.
217 If this symbol is defined in <unistd.h>, it shall be defined to
218 be −1, 0, or 200809L. The value of this symbol reported by
219 sysconf() shall either be −1 or 200809L.
220
221 _POSIX_SYNCHRONIZED_IO
222 The implementation supports the Synchronized Input and Output
223 option. If this symbol is defined in <unistd.h>, it shall be
224 defined to be −1, 0, or 200809L. The value of this symbol
225 reported by sysconf() shall either be −1 or 200809L.
226
227 _POSIX_THREAD_ATTR_STACKADDR
228 The implementation supports the Thread Stack Address Attribute
229 option. If this symbol is defined in <unistd.h>, it shall be
230 defined to be −1, 0, or 200809L. The value of this symbol
231 reported by sysconf() shall either be −1 or 200809L.
232
233 _POSIX_THREAD_ATTR_STACKSIZE
234 The implementation supports the Thread Stack Size Attribute
235 option. If this symbol is defined in <unistd.h>, it shall be
236 defined to be −1, 0, or 200809L. The value of this symbol
237 reported by sysconf() shall either be −1 or 200809L.
238
239 _POSIX_THREAD_CPUTIME
240 The implementation supports the Thread CPU-Time Clocks option.
241 If this symbol is defined in <unistd.h>, it shall be defined to
242 be −1, 0, or 200809L. The value of this symbol reported by
243 sysconf() shall either be −1 or 200809L.
244
245 _POSIX_THREAD_PRIO_INHERIT
246 The implementation supports the Non-Robust Mutex Priority Inheri‐
247 tance option. If this symbol is defined in <unistd.h>, it shall
248 be defined to be −1, 0, or 200809L. The value of this symbol
249 reported by sysconf() shall either be −1 or 200809L.
250
251 _POSIX_THREAD_PRIO_PROTECT
252 The implementation supports the Non-Robust Mutex Priority Protec‐
253 tion option. If this symbol is defined in <unistd.h>, it shall be
254 defined to be −1, 0, or 200809L. The value of this symbol
255 reported by sysconf() shall either be −1 or 200809L.
256
257 _POSIX_THREAD_PRIORITY_SCHEDULING
258 The implementation supports the Thread Execution Scheduling
259 option. If this symbol is defined in <unistd.h>, it shall be
260 defined to be −1, 0, or 200809L. The value of this symbol
261 reported by sysconf() shall either be −1 or 200809L.
262
263 _POSIX_THREAD_PROCESS_SHARED
264 The implementation supports the Thread Process-Shared Synchro‐
265 nization option. If this symbol is defined in <unistd.h>, it
266 shall be defined to be −1, 0, or 200809L. The value of this sym‐
267 bol reported by sysconf() shall either be −1 or 200809L.
268
269 _POSIX_THREAD_ROBUST_PRIO_INHERIT
270 The implementation supports the Robust Mutex Priority Inheritance
271 option. If this symbol is defined in <unistd.h>, it shall be
272 defined to be −1, 0, or 200809L. The value of this symbol
273 reported by sysconf() shall either be −1 or 200809L.
274
275 _POSIX_THREAD_ROBUST_PRIO_PROTECT
276 The implementation supports the Robust Mutex Priority Protection
277 option. If this symbol is defined in <unistd.h>, it shall be
278 defined to be −1, 0, or 200809L. The value of this symbol
279 reported by sysconf() shall either be −1 or 200809L.
280
281 _POSIX_THREAD_SAFE_FUNCTIONS
282 The implementation supports thread-safe functions. This symbol
283 shall always be set to the value 200809L.
284
285 _POSIX_THREAD_SPORADIC_SERVER
286 The implementation supports the Thread Sporadic Server option.
287 If this symbol is defined in <unistd.h>, it shall be defined to
288 be −1, 0, or 200809L. The value of this symbol reported by
289 sysconf() shall either be −1 or 200809L.
290
291 _POSIX_THREADS
292 The implementation supports threads. This symbol shall always be
293 set to the value 200809L.
294
295 _POSIX_TIMEOUTS
296 The implementation supports timeouts. This symbol shall always
297 be set to the value 200809L.
298
299 _POSIX_TIMERS
300 The implementation supports timers. This symbol shall always be
301 set to the value 200809L.
302
303 _POSIX_TRACE
304 The implementation supports the Trace option. If this symbol is
305 defined in <unistd.h>, it shall be defined to be −1, 0, or
306 200809L. The value of this symbol reported by sysconf() shall
307 either be −1 or 200809L.
308
309 _POSIX_TRACE_EVENT_FILTER
310 The implementation supports the Trace Event Filter option. If
311 this symbol is defined in <unistd.h>, it shall be defined to be
312 −1, 0, or 200809L. The value of this symbol reported by sysconf()
313 shall either be −1 or 200809L.
314
315 _POSIX_TRACE_INHERIT
316 The implementation supports the Trace Inherit option. If this
317 symbol is defined in <unistd.h>, it shall be defined to be −1, 0,
318 or 200809L. The value of this symbol reported by sysconf() shall
319 either be −1 or 200809L.
320
321 _POSIX_TRACE_LOG
322 The implementation supports the Trace Log option. If this symbol
323 is defined in <unistd.h>, it shall be defined to be −1, 0, or
324 200809L. The value of this symbol reported by sysconf() shall
325 either be −1 or 200809L.
326
327 _POSIX_TYPED_MEMORY_OBJECTS
328 The implementation supports the Typed Memory Objects option. If
329 this symbol is defined in <unistd.h>, it shall be defined to be
330 −1, 0, or 200809L. The value of this symbol reported by sysconf()
331 shall either be −1 or 200809L.
332
333 _POSIX_V6_ILP32_OFF32
334 The implementation provides a C-language compilation environment
335 with 32-bit int, long, pointer, and off_t types.
336
337 _POSIX_V6_ILP32_OFFBIG
338 The implementation provides a C-language compilation environment
339 with 32-bit int, long, and pointer types and an off_t type using
340 at least 64 bits.
341
342 _POSIX_V6_LP64_OFF64
343 The implementation provides a C-language compilation environment
344 with 32-bit int and 64-bit long, pointer, and off_t types.
345
346 _POSIX_V6_LPBIG_OFFBIG
347 The implementation provides a C-language compilation environment
348 with an int type using at least 32 bits and long, pointer, and
349 off_t types using at least 64 bits.
350
351 _POSIX_V7_ILP32_OFF32
352 The implementation provides a C-language compilation environment
353 with 32-bit int, long, pointer, and off_t types.
354
355 _POSIX_V7_ILP32_OFFBIG
356 The implementation provides a C-language compilation environment
357 with 32-bit int, long, and pointer types and an off_t type using
358 at least 64 bits.
359
360 _POSIX_V7_LP64_OFF64
361 The implementation provides a C-language compilation environment
362 with 32-bit int and 64-bit long, pointer, and off_t types.
363
364 _POSIX_V7_LPBIG_OFFBIG
365 The implementation provides a C-language compilation environment
366 with an int type using at least 32 bits and long, pointer, and
367 off_t types using at least 64 bits.
368
369 _POSIX2_C_BIND
370 The implementation supports the C-Language Binding option. This
371 symbol shall always have the value 200809L.
372
373 _POSIX2_C_DEV
374 The implementation supports the C-Language Development Utilities
375 option. If this symbol is defined in <unistd.h>, it shall be
376 defined to be −1, 0, or 200809L. The value of this symbol
377 reported by sysconf() shall either be −1 or 200809L.
378
379 _POSIX2_CHAR_TERM
380 The implementation supports the Terminal Characteristics option.
381 The value of this symbol reported by sysconf() shall either be −1
382 or a value greater than zero.
383
384 _POSIX2_FORT_DEV
385 The implementation supports the FORTRAN Development Utilities
386 option. If this symbol is defined in <unistd.h>, it shall be
387 defined to be −1, 0, or 200809L. The value of this symbol
388 reported by sysconf() shall either be −1 or 200809L.
389
390 _POSIX2_FORT_RUN
391 The implementation supports the FORTRAN Runtime Utilities option.
392 If this symbol is defined in <unistd.h>, it shall be defined to
393 be −1, 0, or 200809L. The value of this symbol reported by
394 sysconf() shall either be −1 or 200809L.
395
396 _POSIX2_LOCALEDEF
397 The implementation supports the creation of locales by the
398 localedef utility. If this symbol is defined in <unistd.h>, it
399 shall be defined to be −1, 0, or 200809L. The value of this sym‐
400 bol reported by sysconf() shall either be −1 or 200809L.
401
402 _POSIX2_PBS
403 The implementation supports the Batch Environment Services and
404 Utilities option. If this symbol is defined in <unistd.h>, it
405 shall be defined to be −1, 0, or 200809L. The value of this sym‐
406 bol reported by sysconf() shall either be −1 or 200809L.
407
408 _POSIX2_PBS_ACCOUNTING
409 The implementation supports the Batch Accounting option. If this
410 symbol is defined in <unistd.h>, it shall be defined to be −1, 0,
411 or 200809L. The value of this symbol reported by sysconf() shall
412 either be −1 or 200809L.
413
414 _POSIX2_PBS_CHECKPOINT
415 The implementation supports the Batch Checkpoint/Restart option.
416 If this symbol is defined in <unistd.h>, it shall be defined to
417 be −1, 0, or 200809L. The value of this symbol reported by
418 sysconf() shall either be −1 or 200809L.
419
420 _POSIX2_PBS_LOCATE
421 The implementation supports the Locate Batch Job Request option.
422 If this symbol is defined in <unistd.h>, it shall be defined to
423 be −1, 0, or 200809L. The value of this symbol reported by
424 sysconf() shall either be −1 or 200809L.
425
426 _POSIX2_PBS_MESSAGE
427 The implementation supports the Batch Job Message Request option.
428 If this symbol is defined in <unistd.h>, it shall be defined to
429 be −1, 0, or 200809L. The value of this symbol reported by
430 sysconf() shall either be −1 or 200809L.
431
432 _POSIX2_PBS_TRACK
433 The implementation supports the Track Batch Job Request option.
434 If this symbol is defined in <unistd.h>, it shall be defined to
435 be −1, 0, or 200809L. The value of this symbol reported by
436 sysconf() shall either be −1 or 200809L.
437
438 _POSIX2_SW_DEV
439 The implementation supports the Software Development Utilities
440 option. If this symbol is defined in <unistd.h>, it shall be
441 defined to be −1, 0, or 200809L. The value of this symbol
442 reported by sysconf() shall either be −1 or 200809L.
443
444 _POSIX2_UPE
445 The implementation supports the User Portability Utilities
446 option. If this symbol is defined in <unistd.h>, it shall be
447 defined to be −1, 0, or 200809L. The value of this symbol
448 reported by sysconf() shall either be −1 or 200809L.
449
450 _XOPEN_CRYPT
451 The implementation supports the X/Open Encryption Option Group.
452
453 _XOPEN_ENH_I18N
454 The implementation supports the Issue 4, Version 2 Enhanced
455 Internationalization Option Group. This symbol shall always be
456 set to a value other than −1.
457
458 _XOPEN_REALTIME
459 The implementation supports the X/Open Realtime Option Group.
460
461 _XOPEN_REALTIME_THREADS
462 The implementation supports the X/Open Realtime Threads Option
463 Group.
464
465 _XOPEN_SHM
466 The implementation supports the Issue 4, Version 2 Shared Memory
467 Option Group. This symbol shall always be set to a value other
468 than −1.
469
470 _XOPEN_STREAMS
471 The implementation supports the XSI STREAMS Option Group.
472
473 _XOPEN_UNIX
474 The implementation supports the XSI option.
475
476 _XOPEN_UUCP
477 The implementation supports the UUCP Utilities option. If this
478 symbol is defined in <unistd.h>, it shall be defined to be −1, 0,
479 or 200809L. The value of this symbol reported by sysconf() shall
480 be either −1 or 200809L.
481
482 Execution-Time Symbolic Constants
483 If any of the following symbolic constants are not defined in the
484 <unistd.h> header, the value shall vary depending on the file to which
485 it is applied. If defined, they shall have values suitable for use in
486 #if preprocessing directives.
487
488 If any of the following symbolic constants are defined to have value −1
489 in the <unistd.h> header, the implementation shall not provide the
490 option on any file; if any are defined to have a value other than −1 in
491 the <unistd.h> header, the implementation shall provide the option on
492 all applicable files.
493
494 All of the following values, whether defined as symbolic constants in
495 <unistd.h> or not, may be queried with respect to a specific file using
496 the pathconf() or fpathconf() functions:
497
498 _POSIX_ASYNC_IO
499 Asynchronous input or output operations may be performed for the
500 associated file.
501
502 _POSIX_PRIO_IO
503 Prioritized input or output operations may be performed for the
504 associated file.
505
506 _POSIX_SYNC_IO
507 Synchronized input or output operations may be performed for the
508 associated file.
509
510 If the following symbolic constants are defined in the <unistd.h>
511 header, they apply to files and all paths in all file systems on the
512 implementation:
513
514 _POSIX_TIMESTAMP_RESOLUTION
515 The resolution in nanoseconds for all file timestamps.
516
517 _POSIX2_SYMLINKS
518 Symbolic links can be created.
519
520 Constants for Functions
521 The <unistd.h> header shall define NULL as described in <stddef.h>.
522
523 The <unistd.h> header shall define the following symbolic constants for
524 use with the access() function. The values shall be suitable for use in
525 #if preprocessing directives.
526
527 F_OK Test for existence of file.
528
529 R_OK Test for read permission.
530
531 W_OK Test for write permission.
532
533 X_OK Test for execute (search) permission.
534
535 The constants F_OK, R_OK, W_OK, and X_OK and the expressions R_OK|W_OK,
536 R_OK|X_OK, and R_OK|W_OK|X_OK shall all have distinct values.
537
538 The <unistd.h> header shall define the following symbolic constants for
539 the confstr() function:
540
541 _CS_PATH
542 This is the value for the PATH environment variable that finds
543 all standard utilities.
544
545 _CS_POSIX_V7_ILP32_OFF32_CFLAGS
546 If sysconf(_SC_V7_ILP32_OFF32) returns −1, the meaning of this
547 value is unspecified. Otherwise, this value is the set of initial
548 options to be given to the c99 utility to build an application
549 using a programming model with 32-bit int, long, pointer, and
550 off_t types.
551
552 _CS_POSIX_V7_ILP32_OFF32_LDFLAGS
553 If sysconf(_SC_V7_ILP32_OFF32) returns −1, the meaning of this
554 value is unspecified. Otherwise, this value is the set of final
555 options to be given to the c99 utility to build an application
556 using a programming model with 32-bit int, long, pointer, and
557 off_t types.
558
559 _CS_POSIX_V7_ILP32_OFF32_LIBS
560 If sysconf(_SC_V7_ILP32_OFF32) returns −1, the meaning of this
561 value is unspecified. Otherwise, this value is the set of
562 libraries to be given to the c99 utility to build an application
563 using a programming model with 32-bit int, long, pointer, and
564 off_t types.
565
566 _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS
567 If sysconf(_SC_V7_ILP32_OFFBIG) returns −1, the meaning of this
568 value is unspecified. Otherwise, this value is the set of initial
569 options to be given to the c99 utility to build an application
570 using a programming model with 32-bit int, long, and pointer
571 types, and an off_t type using at least 64 bits.
572
573 _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS
574 If sysconf(_SC_V7_ILP32_OFFBIG) returns −1, the meaning of this
575 value is unspecified. Otherwise, this value is the set of final
576 options to be given to the c99 utility to build an application
577 using a programming model with 32-bit int, long, and pointer
578 types, and an off_t type using at least 64 bits.
579
580 _CS_POSIX_V7_ILP32_OFFBIG_LIBS
581 If sysconf(_SC_V7_ILP32_OFFBIG) returns −1, the meaning of this
582 value is unspecified. Otherwise, this value is the set of
583 libraries to be given to the c99 utility to build an application
584 using a programming model with 32-bit int, long, and pointer
585 types, and an off_t type using at least 64 bits.
586
587 _CS_POSIX_V7_LP64_OFF64_CFLAGS
588 If sysconf(_SC_V7_LP64_OFF64) returns −1, the meaning of this
589 value is unspecified. Otherwise, this value is the set of initial
590 options to be given to the c99 utility to build an application
591 using a programming model with 32-bit int and 64-bit long,
592 pointer, and off_t types.
593
594 _CS_POSIX_V7_LP64_OFF64_LDFLAGS
595 If sysconf(_SC_V7_LP64_OFF64) returns −1, the meaning of this
596 value is unspecified. Otherwise, this value is the set of final
597 options to be given to the c99 utility to build an application
598 using a programming model with 32-bit int and 64-bit long,
599 pointer, and off_t types.
600
601 _CS_POSIX_V7_LP64_OFF64_LIBS
602 If sysconf(_SC_V7_LP64_OFF64) returns −1, the meaning of this
603 value is unspecified. Otherwise, this value is the set of
604 libraries to be given to the c99 utility to build an application
605 using a programming model with 32-bit int and 64-bit long,
606 pointer, and off_t types.
607
608 _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS
609 If sysconf(_SC_V7_LPBIG_OFFBIG) returns −1, the meaning of this
610 value is unspecified. Otherwise, this value is the set of initial
611 options to be given to the c99 utility to build an application
612 using a programming model with an int type using at least 32 bits
613 and long, pointer, and off_t types using at least 64 bits.
614
615 _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS
616 If sysconf(_SC_V7_LPBIG_OFFBIG) returns −1, the meaning of this
617 value is unspecified. Otherwise, this value is the set of final
618 options to be given to the c99 utility to build an application
619 using a programming model with an int type using at least 32 bits
620 and long, pointer, and off_t types using at least 64 bits.
621
622 _CS_POSIX_V7_LPBIG_OFFBIG_LIBS
623 If sysconf(_SC_V7_LPBIG_OFFBIG) returns −1, the meaning of this
624 value is unspecified. Otherwise, this value is the set of
625 libraries to be given to the c99 utility to build an application
626 using a programming model with an int type using at least 32 bits
627 and long, pointer, and off_t types using at least 64 bits.
628
629 _CS_POSIX_V7_THREADS_CFLAGS
630 If sysconf(_SC_POSIX_THREADS) returns −1, the meaning of this
631 value is unspecified. Otherwise, this value is the set of initial
632 options to be given to the c99 utility to build a multi-threaded
633 application. These flags are in addition to those associated with
634 any of the other _CS_POSIX_V7_*_CFLAGS values used to specify
635 particular type size programing environments.
636
637 _CS_POSIX_V7_THREADS_LDFLAGS
638 If sysconf(_SC_POSIX_THREADS) returns −1, the meaning of this
639 value is unspecified. Otherwise, this value is the set of final
640 options to be given to the c99 utility to build a multi-threaded
641 application. These flags are in addition to those associated with
642 any of the other _CS_POSIX_V7_*_LDFLAGS values used to specify
643 particular type size programing environments.
644
645 _CS_POSIX_V7_WIDTH_RESTRICTED_ENVS
646 This value is a <newline>-separated list of names of programming
647 environments supported by the implementation in which the widths
648 of the blksize_t, cc_t, mode_t, nfds_t, pid_t, ptrdiff_t, size_t,
649 speed_t, ssize_t, suseconds_t, tcflag_t, wchar_t, and wint_t
650 types are no greater than the width of type long. The format of
651 each name shall be suitable for use with the getconf −v option.
652
653 _CS_V7_ENV
654 This is the value that provides the environment variable informa‐
655 tion (other than that provided by _CS_PATH) that is required by
656 the implementation to create a conforming environment, as
657 described in the implementation's conformance documentation.
658
659 The following symbolic constants are reserved for compatibility with
660 Issue 6:
661
662 _CS_POSIX_V6_ILP32_OFF32_CFLAGS
663 _CS_POSIX_V6_ILP32_OFF32_LDFLAGS
664 _CS_POSIX_V6_ILP32_OFF32_LIBS
665 _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS
666 _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS
667 _CS_POSIX_V6_ILP32_OFFBIG_LIBS
668 _CS_POSIX_V6_LP64_OFF64_CFLAGS
669 _CS_POSIX_V6_LP64_OFF64_LDFLAGS
670 _CS_POSIX_V6_LP64_OFF64_LIBS
671 _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS
672 _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS
673 _CS_POSIX_V6_LPBIG_OFFBIG_LIBS
674 _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS
675 _CS_V6_ENV
676
677 The <unistd.h> header shall define SEEK_CUR, SEEK_END, and SEEK_SET as
678 described in <stdio.h>.
679
680 The <unistd.h> header shall define the following symbolic constants as
681 possible values for the function argument to the lockf() function:
682
683 F_LOCK Lock a section for exclusive use.
684
685 F_TEST Test section for locks by other processes.
686
687 F_TLOCK Test and lock a section for exclusive use.
688
689 F_ULOCK Unlock locked sections.
690
691 The <unistd.h> header shall define the following symbolic constants for
692 pathconf():
693
694 _PC_2_SYMLINKS
695 _PC_ALLOC_SIZE_MIN
696 _PC_ASYNC_IO
697 _PC_CHOWN_RESTRICTED
698 _PC_FILESIZEBITS
699 _PC_LINK_MAX
700 _PC_MAX_CANON
701 _PC_MAX_INPUT
702 _PC_NAME_MAX
703 _PC_NO_TRUNC
704 _PC_PATH_MAX
705 _PC_PIPE_BUF
706 _PC_PRIO_IO
707 _PC_REC_INCR_XFER_SIZE
708 _PC_REC_MAX_XFER_SIZE
709 _PC_REC_MIN_XFER_SIZE
710 _PC_REC_XFER_ALIGN
711 _PC_SYMLINK_MAX
712 _PC_SYNC_IO
713 _PC_TIMESTAMP_RESOLUTION
714 _PC_VDISABLE
715
716 The <unistd.h> header shall define the following symbolic constants for
717 sysconf():
718
719 _SC_2_C_BIND
720 _SC_2_C_DEV
721 _SC_2_CHAR_TERM
722 _SC_2_FORT_DEV
723 _SC_2_FORT_RUN
724 _SC_2_LOCALEDEF
725 _SC_2_PBS
726 _SC_2_PBS_ACCOUNTING
727 _SC_2_PBS_CHECKPOINT
728 _SC_2_PBS_LOCATE
729 _SC_2_PBS_MESSAGE
730 _SC_2_PBS_TRACK
731 _SC_2_SW_DEV
732 _SC_2_UPE
733 _SC_2_VERSION
734 _SC_ADVISORY_INFO
735 _SC_AIO_LISTIO_MAX
736 _SC_AIO_MAX
737 _SC_AIO_PRIO_DELTA_MAX
738 _SC_ARG_MAX
739 _SC_ASYNCHRONOUS_IO
740 _SC_ATEXIT_MAX
741 _SC_BARRIERS
742 _SC_BC_BASE_MAX
743 _SC_BC_DIM_MAX
744 _SC_BC_SCALE_MAX
745 _SC_BC_STRING_MAX
746 _SC_CHILD_MAX
747 _SC_CLK_TCK
748 _SC_CLOCK_SELECTION
749 _SC_COLL_WEIGHTS_MAX
750 _SC_CPUTIME
751 _SC_DELAYTIMER_MAX
752 _SC_EXPR_NEST_MAX
753 _SC_FSYNC
754 _SC_GETGR_R_SIZE_MAX
755 _SC_GETPW_R_SIZE_MAX
756 _SC_HOST_NAME_MAX
757 _SC_IOV_MAX
758 _SC_IPV6
759 _SC_JOB_CONTROL
760 _SC_LINE_MAX
761 _SC_LOGIN_NAME_MAX
762 _SC_MAPPED_FILES
763 _SC_MEMLOCK
764 _SC_MEMLOCK_RANGE
765 _SC_MEMORY_PROTECTION
766 _SC_MESSAGE_PASSING
767 _SC_MONOTONIC_CLOCK
768 _SC_MQ_OPEN_MAX
769 _SC_MQ_PRIO_MAX
770 _SC_NGROUPS_MAX
771 _SC_OPEN_MAX
772 _SC_PAGE_SIZE
773 _SC_PAGESIZE
774 _SC_PRIORITIZED_IO
775 _SC_PRIORITY_SCHEDULING
776 _SC_RAW_SOCKETS
777 _SC_RE_DUP_MAX
778 _SC_READER_WRITER_LOCKS
779 _SC_REALTIME_SIGNALS
780 _SC_REGEXP
781 _SC_RTSIG_MAX
782 _SC_SAVED_IDS
783 _SC_SEM_NSEMS_MAX
784 _SC_SEM_VALUE_MAX
785 _SC_SEMAPHORES
786 _SC_SHARED_MEMORY_OBJECTS
787 _SC_SHELL
788 _SC_SIGQUEUE_MAX
789 _SC_SPAWN
790 _SC_SPIN_LOCKS
791 _SC_SPORADIC_SERVER
792 _SC_SS_REPL_MAX
793 _SC_STREAM_MAX
794 _SC_SYMLOOP_MAX
795 _SC_SYNCHRONIZED_IO
796 _SC_THREAD_ATTR_STACKADDR
797 _SC_THREAD_ATTR_STACKSIZE
798 _SC_THREAD_CPUTIME
799 _SC_THREAD_DESTRUCTOR_ITERATIONS
800 _SC_THREAD_KEYS_MAX
801 _SC_THREAD_PRIO_INHERIT
802 _SC_THREAD_PRIO_PROTECT
803 _SC_THREAD_PRIORITY_SCHEDULING
804 _SC_THREAD_PROCESS_SHARED
805 _SC_THREAD_ROBUST_PRIO_INHERIT
806 _SC_THREAD_ROBUST_PRIO_PROTECT
807 _SC_THREAD_SAFE_FUNCTIONS
808 _SC_THREAD_SPORADIC_SERVER
809 _SC_THREAD_STACK_MIN
810 _SC_THREAD_THREADS_MAX
811 _SC_THREADS
812 _SC_TIMEOUTS
813 _SC_TIMER_MAX
814 _SC_TIMERS
815 _SC_TRACE
816 _SC_TRACE_EVENT_FILTER
817 _SC_TRACE_EVENT_NAME_MAX
818 _SC_TRACE_INHERIT
819 _SC_TRACE_LOG
820 _SC_TRACE_NAME_MAX
821 _SC_TRACE_SYS_MAX
822 _SC_TRACE_USER_EVENT_MAX
823 _SC_TTY_NAME_MAX
824 _SC_TYPED_MEMORY_OBJECTS
825 _SC_TZNAME_MAX
826 _SC_V7_ILP32_OFF32
827 _SC_V7_ILP32_OFFBIG
828 _SC_V7_LP64_OFF64
829 _SC_V7_LPBIG_OFFBIG
830 _SC_V6_ILP32_OFF32
831 _SC_V6_ILP32_OFFBIG
832 _SC_V6_LP64_OFF64
833 _SC_V6_LPBIG_OFFBIG
834 _SC_VERSION
835 _SC_XOPEN_CRYPT
836 _SC_XOPEN_ENH_I18N
837 _SC_XOPEN_REALTIME
838 _SC_XOPEN_REALTIME_THREADS
839 _SC_XOPEN_SHM
840 _SC_XOPEN_STREAMS
841 _SC_XOPEN_UNIX
842 _SC_XOPEN_UUCP
843 _SC_XOPEN_VERSION
844
845 The two constants _SC_PAGESIZE and _SC_PAGE_SIZE may be defined to have
846 the same value.
847
848 The <unistd.h> header shall define the following symbolic constants for
849 file streams:
850
851 STDERR_FILENO File number of stderr; 2.
852
853 STDIN_FILENO File number of stdin; 0.
854
855 STDOUT_FILENO File number of stdout; 1.
856
857 The <unistd.h> header shall define the following symbolic constant for
858 terminal special character handling:
859
860 _POSIX_VDISABLE
861 This symbol shall be defined to be the value of a charac‐
862 ter that shall disable terminal special character han‐
863 dling as described in Section 11.2.6, Special Control
864 Characters. This symbol shall always be set to a value
865 other than −1.
866
867 Type Definitions
868 The <unistd.h> header shall define the size_t, ssize_t, uid_t, gid_t,
869 off_t, and pid_t types as described in <sys/types.h>.
870
871 The <unistd.h> header shall define the intptr_t type as described in
872 <inttypes.h>.
873
874 Declarations
875 The following shall be declared as functions and may also be defined as
876 macros. Function prototypes shall be provided.
877
878 int access(const char *, int);
879 unsigned alarm(unsigned);
880 int chdir(const char *);
881 int chown(const char *, uid_t, gid_t);
882 int close(int);
883 size_t confstr(int, char *, size_t);
884 char *crypt(const char *, const char *);
885 int dup(int);
886 int dup2(int, int);
887 void _exit(int);
888 void encrypt(char [64], int);
889 int execl(const char *, const char *, ...);
890 int execle(const char *, const char *, ...);
891 int execlp(const char *, const char *, ...);
892 int execv(const char *, char *const []);
893 int execve(const char *, char *const [], char *const []);
894 int execvp(const char *, char *const []);
895 int faccessat(int, const char *, int, int);
896 int fchdir(int);
897 int fchown(int, uid_t, gid_t);
898 int fchownat(int, const char *, uid_t, gid_t, int);
899 int fdatasync(int);
900 int fexecve(int, char *const [], char *const []);
901 pid_t fork(void);
902 long fpathconf(int, int);
903 int fsync(int);
904 int ftruncate(int, off_t);
905 char *getcwd(char *, size_t);
906 gid_t getegid(void);
907 uid_t geteuid(void);
908 gid_t getgid(void);
909 int getgroups(int, gid_t []);
910 long gethostid(void);
911 int gethostname(char *, size_t);
912 char *getlogin(void);
913 int getlogin_r(char *, size_t);
914 int getopt(int, char * const [], const char *);
915 pid_t getpgid(pid_t);
916 pid_t getpgrp(void);
917 pid_t getpid(void);
918 pid_t getppid(void);
919 pid_t getsid(pid_t);
920 uid_t getuid(void);
921 int isatty(int);
922 int lchown(const char *, uid_t, gid_t);
923 int link(const char *, const char *);
924 int linkat(int, const char *, int, const char *, int);
925 int lockf(int, int, off_t);
926 off_t lseek(int, off_t, int);
927 int nice(int);
928 long pathconf(const char *, int);
929 int pause(void);
930 int pipe(int [2]);
931 ssize_t pread(int, void *, size_t, off_t);
932 ssize_t pwrite(int, const void *, size_t, off_t);
933 ssize_t read(int, void *, size_t);
934 ssize_t readlink(const char *restrict, char *restrict, size_t);
935 ssize_t readlinkat(int, const char *restrict, char *restrict, size_t);
936 int rmdir(const char *);
937 int setegid(gid_t);
938 int seteuid(uid_t);
939 int setgid(gid_t);
940 int setpgid(pid_t, pid_t);
941 pid_t setpgrp(void);
942 int setregid(gid_t, gid_t);
943 int setreuid(uid_t, uid_t);
944 pid_t setsid(void);
945 int setuid(uid_t);
946 unsigned sleep(unsigned);
947 void swab(const void *restrict, void *restrict, ssize_t);
948 int symlink(const char *, const char *);
949 int symlinkat(const char *, int, const char *);
950 void sync(void);
951 long sysconf(int);
952 pid_t tcgetpgrp(int);
953 int tcsetpgrp(int, pid_t);
954 int truncate(const char *, off_t);
955 char *ttyname(int);
956 int ttyname_r(int, char *, size_t);
957 int unlink(const char *);
958 int unlinkat(int, const char *, int);
959 ssize_t write(int, const void *, size_t);
960
961 Implementations may also include the pthread_atfork() prototype as
962 defined in <pthread.h>. Implementations may also include the ctermid()
963 prototype as defined in <stdio.h>.
964
965 The <unistd.h> header shall declare the following external variables:
966
967 extern char *optarg;
968 extern int opterr, optind, optopt;
969
970 The following sections are informative.
971
973 POSIX.1‐2008 only describes the behavior of systems that claim confor‐
974 mance to it. However, application developers who want to write applica‐
975 tions that adapt to other versions of this standard (or to systems that
976 do not conform to any POSIX standard) may find it useful to code them
977 so as to conditionally compile different code depending on the value of
978 _POSIX_VERSION, for example:
979
980 #if _POSIX_VERSION >= 200112L
981 /* Use the newer function that copes with large files. */
982 off_t pos=ftello(fp);
983 #else
984 /* Either this is an old version of POSIX, or _POSIX_VERSION is
985 not even defined, so use the traditional function. */
986 long pos=ftell(fp);
987 #endif
988
989 Earlier versions of POSIX.1‐2008 and of the Single UNIX Specification
990 can be identified by the following macros:
991
992 POSIX.1‐1988 standard
993 _POSIX_VERSION==198808L
994
995 POSIX.1‐1990 standard
996 _POSIX_VERSION==199009L
997
998 ISO POSIX‐1:1996 standard
999 _POSIX_VERSION==199506L
1000
1001 Single UNIX Specification, Version 1
1002 _XOPEN_UNIX and _XOPEN_VERSION==4
1003
1004 Single UNIX Specification, Version 2
1005 _XOPEN_UNIX and _XOPEN_VERSION==500
1006
1007 ISO POSIX‐1:2001 and Single UNIX Specification, Version 3
1008 _POSIX_VERSION==200112L, plus (if the XSI option is supported)
1009 _XOPEN_UNIX and _XOPEN_VERSION==600
1010
1011 POSIX.1‐2008 does not make any attempt to define application binary
1012 interaction with the underlying operating system. However, application
1013 developers may find it useful to query _SC_VERSION at runtime via
1014 sysconf() to determine whether the current version of the operating
1015 system supports the necessary functionality as in the following program
1016 fragment:
1017
1018 if (sysconf(_SC_VERSION) < 200809L) {
1019 fprintf(stderr, "POSIX.1-2008 system required, terminating \n");
1020 exit(1);
1021 }
1022
1023 New applications should not use _XOPEN_SHM or _XOPEN_ENH_I18N.
1024
1026 As POSIX.1‐2008 evolved, certain options became sufficiently standard‐
1027 ized that it was concluded that simply requiring one of the option
1028 choices was simpler than retaining the option. However, for backwards-
1029 compatibility, the option flags (with required constant values) are
1030 retained.
1031
1032 Version Test Macros
1033 The standard developers considered altering the definition of
1034 _POSIX_VERSION and removing _SC_VERSION from the specification of
1035 sysconf() since the utility to an application was deemed by some to be
1036 minimal, and since the implementation of the functionality is poten‐
1037 tially problematic. However, they recognized that support for existing
1038 application binaries is a concern to manufacturers, application devel‐
1039 opers, and the users of implementations conforming to POSIX.1‐2008.
1040
1041 While the example using _SC_VERSION in the APPLICATION USAGE section
1042 does not provide the greatest degree of imaginable utility to the
1043 application developer or user, it is arguably better than a core file
1044 or some other equally obscure result. (It is also possible for imple‐
1045 mentations to encode and recognize application binaries compiled in
1046 various POSIX.1-conforming environments, and modify the semantics of
1047 the underlying system to conform to the expectations of the applica‐
1048 tion.) For the reasons outlined in the preceding paragraphs and in the
1049 APPLICATION USAGE section, the standard developers elected to retain
1050 the _POSIX_VERSION and _SC_VERSION functionality.
1051
1052 Compile-Time Symbolic Constants for System-Wide Options
1053 POSIX.1‐2008 includes support in certain areas for the newly adopted
1054 policy governing options and stubs.
1055
1056 This policy provides flexibility for implementations in how they sup‐
1057 port options. It also specifies how conforming applications can adapt
1058 to different implementations that support different sets of options. It
1059 allows the following:
1060
1061 1. If an implementation has no interest in supporting an option, it
1062 does not have to provide anything associated with that option
1063 beyond the announcement that it does not support it.
1064
1065 2. An implementation can support a partial or incompatible version of
1066 an option (as a non-standard extension) as long as it does not
1067 claim to support the option.
1068
1069 3. An application can determine whether the option is supported. A
1070 strictly conforming application must check this announcement mecha‐
1071 nism before first using anything associated with the option.
1072
1073 There is an important implication of this policy. POSIX.1‐2008 cannot
1074 dictate the behavior of interfaces associated with an option when the
1075 implementation does not claim to support the option. In particular, it
1076 cannot require that a function associated with an unsupported option
1077 will fail if it does not perform as specified. However, this policy
1078 does not prevent a standard from requiring certain functions to always
1079 be present, but that they shall always fail on some implementations.
1080 The setpgid() function in the POSIX.1‐1990 standard, for example, is
1081 considered appropriate.
1082
1083 The POSIX standards include various options, and the C-language binding
1084 support for an option implies that the implementation must supply data
1085 types and function interfaces. An application must be able to discover
1086 whether the implementation supports each option.
1087
1088 Any application must consider the following three cases for each
1089 option:
1090
1091 1. Option never supported.
1092
1093 The implementation advertises at compile time that the option will
1094 never be supported. In this case, it is not necessary for the
1095 implementation to supply any of the data types or function inter‐
1096 faces that are provided only as part of the option. The implementa‐
1097 tion might provide data types and functions that are similar to
1098 those defined by POSIX.1‐2008, but there is no guarantee for any
1099 particular behavior.
1100
1101 2. Option always supported.
1102
1103 The implementation advertises at compile time that the option will
1104 always be supported. In this case, all data types and function
1105 interfaces shall be available and shall operate as specified.
1106
1107 3. Option might or might not be supported.
1108
1109 Some implementations might not provide a mechanism to specify sup‐
1110 port of options at compile time. In addition, the implementation
1111 might be unable or unwilling to specify support or non-support at
1112 compile time. In either case, any application that might use the
1113 option at runtime must be able to compile and execute. The imple‐
1114 mentation must provide, at compile time, all data types and func‐
1115 tion interfaces that are necessary to allow this. In this situa‐
1116 tion, there must be a mechanism that allows the application to
1117 query, at runtime, whether the option is supported. If the applica‐
1118 tion attempts to use the option when it is not supported, the
1119 result is unspecified unless explicitly specified otherwise in
1120 POSIX.1‐2008.
1121
1123 None.
1124
1126 <inttypes.h>, <limits.h>, <stddef.h>, <stdio.h>, <sys_socket.h>,
1127 <sys_types.h>, <termios.h>, <wctype.h>
1128
1129 The System Interfaces volume of POSIX.1‐2008, access(), alarm(),
1130 chown(), close(), confstr(), crypt(), ctermid(), dup(), _Exit(),
1131 encrypt(), exec, fchdir(), fchown(), fdatasync(), fork(), fpathconf(),
1132 fsync(), ftruncate(), getcwd(), getegid(), geteuid(), getgid(), get‐
1133 groups(), gethostid(), gethostname(), getlogin(), getopt(), getpgid(),
1134 getpgrp(), getpid(), getppid(), getsid(), getuid(), isatty(), lchown(),
1135 link(), lockf(), lseek(), nice(), pause(), pipe(), read(), readlink(),
1136 rmdir(), setegid(), seteuid(), setgid(), setpgid(), setpgrp(),
1137 setregid(), setreuid(), setsid(), setuid(), sleep(), swab(), symlink(),
1138 sync(), sysconf(), tcgetpgrp(), tcsetpgrp(), truncate(), ttyname(),
1139 unlink(), write()
1140
1142 Portions of this text are reprinted and reproduced in electronic form
1143 from IEEE Std 1003.1, 2013 Edition, Standard for Information Technology
1144 -- Portable Operating System Interface (POSIX), The Open Group Base
1145 Specifications Issue 7, Copyright (C) 2013 by the Institute of Electri‐
1146 cal and Electronics Engineers, Inc and The Open Group. (This is
1147 POSIX.1-2008 with the 2013 Technical Corrigendum 1 applied.) In the
1148 event of any discrepancy between this version and the original IEEE and
1149 The Open Group Standard, the original IEEE and The Open Group Standard
1150 is the referee document. The original Standard can be obtained online
1151 at http://www.unix.org/online.html .
1152
1153 Any typographical or formatting errors that appear in this page are
1154 most likely to have been introduced during the conversion of the source
1155 files to man page format. To report such errors, see https://www.ker‐
1156 nel.org/doc/man-pages/reporting_bugs.html .
1157
1158
1159
1160IEEE/The Open Group 2013 unistd.h(0P)