NAME
unistd − standard symbolic constants and types
SYNOPSIS
#include <unistd.h>
DESCRIPTION
The <unistd.h> header defines the symbolic constants and structures which are not already defined or declared in some other header. The contents of this header are shown below.
Version Test
Macros
The following symbolic constants are defined (with fixed
values):
_POSIX_VERSION
Integer value indicating version of the POSIX standard (C language binding). See standards(5).
_POSIX2_VERSION
Integer value indicating version of the POSIX.2 standard (Commands). _POSIX2_C_VERSION Integer value indicating version of the POSIX.2 standard (C language binding).
_XOPEN_VERSION
Integer value indicating version of the XPG to which system conforms.
_XOPEN_XCU_VERSION
Integer value indicating the version of the XCU specification to which the implementation conforms. If this constant is not defined, use the sysconf(3C) function to determine which features are supported.
Mandatory
Symbolic Constants
The following symbolic constants are either undefined or
defined with a value other than −1. If a constant is
undefined, an application should use the sysconf(3C),
pathconf(2), or fpathconf(2) functions to
determine which features are present on the system at that
time or for the particular pathname in question.
_POSIX_JOB_CONTROL
Implementation supports job control.
_POSIX_SAVED_IDS
The exec functions (see exec(2)) save the effective user and group.
_POSIX_THREADS
The implementation supports the threads option.
_POSIX_THREAD_ATTR_STACKADDR
The implementation supports the thread stack address attribute option.
_POSIX_THREAD_ATTR_STACKSIZE
The implementation supports the thread stack size attribute option.
_POSIX_THREAD_PROCESS_SHARED
The implementation supports the process-shared synchronization option.
_POSIX_THREAD_SAFE_FUNCTIONS
The implementation supports the thread-safe functions option.
_XOPEN_XPG3
X/Open Specification, February 1992, System Interfaces and Headers, Issue 3 (ISBN: 1-872630-37-5, C212); this specification was formerly X/Open Portability Guide, Issue 3, Volume 2, January 1989, XSI System Interface and Headers (ISBN: 0-13-685843-0, XO/XPG/89/003).
_XOPEN_XPG4
X/Open CAE Specification, July 1992, System Interfaces and Headers, Issue 4 (ISBN: 1-872630-47-2, C202).
_XOPEN_UNIX
X/Open CAE Specification, January 1997, System Interfaces and Headers, Issue 5 (ISBN: 1-85912-181-0, C606).
Constants
for Options and Feature Groups
The following symbolic constants are defined to have the
value −1 if the implementation will never provide the
feature, and to have a value other than −1 if the
implementation always provides the feature. If these are
undefined, the sysconf() function can be used to
determine whether the feature is provided for a particular
invocation of the application.
_POSIX2_C_BIND
Implementation supports the C Language Binding option.
_POSIX2_C_DEV
Implementation supports the C Language Development Utilities option.
_POSIX2_CHAR_TERM
Implementation supports at least one terminal type.
_POSIX2_LOCALEDEF
Implementation supports the creation of locales by the localedef(1) utility.
_POSIX2_SW_DEV
Implementation supports the Software Development Utilities option.
_POSIX2_UPE
The implementation supports the User Portability Utilities option.
_XOPEN_ENH_I18N
The implementation supports the Issue 4, Version 2 Enhanced Internationalization Feature Group.
_XOPEN_LEGACY
The implementation supports the Legacy Feature Group.
_XOPEN_REALTIME
The implementation supports the X/Open Realtime Feature Group.
_XOPEN_SHM
The implementation supports the Issue 4, Version 2 Shared Memory Feature Group.
_XBS5_ILP32_OFF32
Implementation provides a C-language compilation environment with 32-bit int, long, pointer and off_t types.
_XBS5_ILP32_OFFBIG
Implementation provides a C-language compilation environment with 32-bit int, long and pointer types and an off_t type using at least 64 bits.
_XBS5_LP64_OFF64
Implementation provides a C-language compilation environment with 32-bit int and 64-bit long, pointer and off_t types.
_XBS5_LPBIG_OFFBIG
Implementation provides a C-language compilation environment with an int type using at least 32 bits and long, pointer and off_t types using at least 64 bits.
If
_XOPEN_REALTIME is defined to have a value other than
−1 then the following symbolic constants will be
defined to an unspecified value to indicate that the
features are supported.
_POSIX_ASYNCHRONOUS_IO
Implementation supports the Asynchronous Input and Output option.
_POSIX_MEMLOCK
Implementation supports the Process Memory Locking option.
_POSIX_MEMLOCK_RANGE
Implementation supports the Range Memory Locking option.
_POSIX_MESSAGE_PASSING
Implementation supports the Message Passing option.
_POSIX_PRIORITY_SCHEDULING
Implementation supports the Process Scheduling option.
_POSIX_REALTIME_SIGNALS
Implementation supports the Realtime Signals Extension option.
_POSIX_SEMAPHORES
Implementation supports the Semaphores option.
_POSIX_SHARED_MEMORY_OBJECTS
Implementation supports the Shared Memory Objects option.
_POSIX_SYNCHRONIZED_IO
Implementation supports the Synchronized Input and Output option.
_POSIX_TIMERS
Implementation supports the Timers option.
The following
symbolic constants are always defined to unspecified values
to indicate that the functionality is always present on
XSI-conformant systems.
_POSIX_FSYNC
Implementation supports the File Synchronisation option.
_POSIX_MAPPED_FILES
Implementation supports the Memory Mapped Files option.
_POSIX_MEMORY_PROTECTION
Implementation supports the Memory Protection option.
Execution-time
Symbolic Constants
If any of the following constants are not defined in the
header <unistd.h>, the value varies depending
on the file to which it is applied.
If any of the following constants are defined to have value −1 in the header <unistd.h>, the implementation will not provide the option on any file; if any are defined to have a value other than −1 in the header <unistd.h>, the implementation will provide the option on all applicable files.
All of the
following constants, whether defined in
<unistd.h> or not, may be queried with respect
to a specific file using the pathconf() or
fpathconf() functions.
_POSIX_ASYNC_IO
Asynchronous input or output operations may be performed for the associated file.
_POSIX_PRIO_IO
Prioritized input or output operations may be performed for the associated file.
_POSIX_SYNC_IO
Synchronized input or output operations may be performed for the associated file.
Constants
for Functions
The following constant is defined:
NULL |
Null pointer. |
The following symbolic constants are defined for the access(2) function:
R_OK |
Test for read permission. | ||
W_OK |
Test for write permission. | ||
X_OK |
Test for execute (search) permission. | ||
F_OK |
Test for existence of file. The constants F_OK, R_OK, W_OK, and X_OK, and the expressions R_OK|W_OK, R_OK|X_OK, and R_OK|W_OK|X_OK all have distinct values. |
The following
symbolic constants are defined for the lockf(3C)
function:
F_ULOCK
Unlock a previously locked region.
F_LOCK
Lock a region for exclusive use.
F_TLOCK
Test and lock a region for exclusive use.
F_TEST
Test a region for other processes locks.
The following
symbolic constants are defined for the lseek(2) and
fcntl(2) functions (they have distinct values):
SEEK_SET
Set file offset to offset.
SEEK_CUR
Set file offset to current plus offset.
SEEK_END
Set file offset to EOF plus offset.
The following symbolic constants are defined for the confstr(3C) function for both SPARC and IA:
The followwing symbolic constants are defined for the confstr() function for SPARC only:
The following symbolic constants are defined for the sysconf(3C) function:
The two constants _SC_PAGESIZE and _SC_PAGE_SIZE may be defined to have the same value.
The following symbolic constants are defined for the fpathconf(2) function:
The following
symbolic constants are defined for file streams:
STDIN_FILENO
File number (0) of stdin.
STDOUT_FILENO
File number (1) of stout.
STDERR_FILENO
File number (2) of stderr. The following pathnames are defined:
GF_PATH
Pathname of the group file.
PF_PATH
Pathname of the passwd file.
SEE ALSO
access(2), exec(2), fcntl(2), fpathconf(2), lseek(2), confstr(3C), lockf(3C), sysconf(3C), termios(3C), group(4), passwd(4), standards(5), termio(7I)