The Open Group Base Specifications Issue 8
IEEE Std 1003.1-2024
Copyright © 2001-2024 The IEEE and The Open Group
Rationale: Table of Contents
A. Rationale for Base Definitions
A.1 Introduction
A.1.1 Scope
Scope of POSIX.1-2024
POSIX.1 and the ISO C Standard
FIPS Requirements
A.1.2 Word Usage
A.1.3 Conformance
A.1.4 Normative References
A.1.5 Change History
A.1.6 Terminology
conformance document
implementation-defined
may
shall
should
obsolescent
legacy
system documentation
undefined
unspecified
macro
symbolic name
symbolic constant
A.1.7 Definitions and Concepts
A.1.8 Portability
A.1.8.1 Codes
A.1.8.2 Margin Code Notation
A.2 Conformance
A.2.1 Implementation Conformance
A.2.1.1 Requirements
A.2.1.2 Documentation
A.2.1.3 POSIX Conformance
A.2.1.4 XSI Conformance
A.2.1.5 Option Groups
Subprofiling Considerations
XSI Option Groups
A.2.1.6 Options
A.2.2 Application Conformance
A.2.2.1 Strictly Conforming POSIX Application
A.2.2.2 Conforming POSIX Application
A.2.2.3 Conforming POSIX Application Using Extensions
A.2.2.4 Strictly Conforming XSI Application
A.2.2.5 Conforming XSI Application Using Extensions
A.2.3 Language-Dependent Services for the C Programming Language
A.2.4 Other Language-Related Specifications
A.3 Definitions
Alias Name
Anonymous Memory Object
Application
Appropriate Privileges
Async-Signal-Safe Function
Background Job
Base Character*
Basename
Built-In Utility
Byte
Character
Child Process
Clock Tick
Code Block
Command
Column Positions
Condition Variable
Control Operator
Controlling Terminal
Core Image
CPU Time (Execution Time)
Decimal-Point Character
Declaration Utility
Device Number*
Direct I/O
Directory
Directory Entry (or Hard Link)
Display
Dot
Dot-Dot
Dot-Po File
Empty Directory
Epoch
FIFO Special File
File
File Classes
File Descriptor
File Lock
File Mode
Filename
File System
Foreground Job
Graphic Character
Group Database
Group File*
Group ID
Group Name
Hard Link
Historical Implementations*
Hole
Hosted Implementation*
Implementation*
Incomplete Pathname*
Interactive Device
Intrinsic Utility
Job
Job Control
Job ID
Joinable Thread
Kernel*
Library Routine*
Link
Live Process
Live Thread
Logical Device*
Map
Memory-Resident
Memory Object*
Messages Object
Mounted File System*
Multi-Threaded Library
Multi-Threaded Process
Multi-Threaded Program
Mutex
Name
Native Implementation*
Negative
Nice Value
Null Pointer
Null Terminator
OFD-Owned File Lock
Open File Description
Option-Argument
Orphaned Process Group
Page
Pathname
Passwd File*
Parent Directory
Pattern
Pipe
Portable Filename
Portable Filename Character Set
Portable Messages Object Source File (or Dot-Po File)
Positional Parameter
Positive
Process
Process Lifetime
Process Termination
Process-Owned File Lock
Pseudo-Terminal
Radix Character (or Decimal-Point Character)
Record Lock
Regular Built-In Utility (or Regular Built-In)
Regular File
Root Directory
Root File System*
Root of a File System*
Signal
Single-Threaded Process
Single-Threaded Program
Source Code
Sparse File
Special Built-In Utility (or Special Built-In)
Standard Error
Standard Input
Standard Output
Stream
Superuser*
Supplementary Group ID
Suspended Job
Symbolic Constant
Symbolic Link
Synchronized I/O Data Integrity Completion
Synchronously-Generated Signal
System Call*
System Console
System Databases
System Process
System Reboot
Synchronized I/O Data (and File) Integrity Completion
Text Domain
Text File
Thread
Thread ID
Thread Lifetime
Thread Termination
Thread-Safe
Thread-Specific Data Key
User Database
User ID
User Name
Virtual Processor*
White Space
XSI
Zombie Process
Zombie Thread
A.4 General Concepts
A.4.1 Case Insensitive Comparisons
A.4.2 Concurrent Execution
A.4.3 Default Initialization
A.4.4 Directory Operations
A.4.5 Directory Protection
A.4.6 Extended Security Controls
A.4.7 File Access Permissions
A.4.8 File Hierarchy
A.4.9 Filenames
A.4.10 Filename Portability
A.4.11 File System Cache
A.4.12 File Times Update
A.4.13 Host and Network Byte Order
A.4.14 Measurement of Execution Time
A.4.15 Memory Ordering and Synchronization
A.4.15.1 Memory Ordering
A.4.15.2 Memory Synchronization
A.4.16 Pathname Resolution
A.4.17 Process ID Reuse
A.4.18 Scheduling Policy
A.4.19 Seconds Since the Epoch
A.4.20 Semaphore
A.4.21 Special Device Drivers
A.4.22 Thread-Safety
A.4.23 Treatment of Error Conditions for Mathematical Functions
A.4.24 Treatment of NaN Arguments for Mathematical Functions
A.4.25 Utility
A.4.26 Variable Assignment
A.5 File Format Notation
A.6 Character Set
A.6.1 Portable Character Set
A.6.2 Character Encoding
A.6.3 C Language Wide-Character Codes
A.6.4 Character Set Description File
A.6.4.1 State-Dependent Character Encodings
A.7 Locale
A.7.1 General
A.7.2 POSIX Locale
A.7.3 Locale Definition
A.7.3.1 LC_CTYPE
A.7.3.2 LC_COLLATE
A.7.3.3 LC_MONETARY
A.7.3.4 LC_NUMERIC
A.7.3.5 LC_TIME
A.7.3.6 LC_MESSAGES
A.7.4 Locale Definition Grammar
A.7.4.1 Locale Lexical Conventions
A.7.4.2 Locale Grammar
A.7.5 Locale Definition Example
A.8 Environment Variables
A.8.1 Environment Variable Definition
A.8.2 Internationalization Variables
A.8.3 Other Environment Variables
COLUMNS, LINES
LOGNAME
PATH
SHELL
TZ
A.9 Regular Expressions
A.9.1 Regular Expression Definitions
A.9.2 Regular Expression General Requirements
A.9.3 Basic Regular Expressions
A.9.3.1 BREs Matching a Single Character or Collating Element
A.9.3.2 BRE Ordinary Characters
A.9.3.3 BRE Special Characters
A.9.3.4 Periods in BREs
A.9.3.5 RE Bracket Expression
A.9.3.6 BREs Matching Multiple Characters
A.9.3.7 BRE Precedence
A.9.3.8 BRE Expression Anchoring
A.9.4 Extended Regular Expressions
A.9.4.1 EREs Matching a Single Character or Collating Element
A.9.4.2 ERE Ordinary Characters
A.9.4.3 ERE Special Characters
A.9.4.4 Periods in EREs
A.9.4.5 ERE Bracket Expression
A.9.4.6 EREs Matching Multiple Characters
A.9.4.7 ERE Alternation
A.9.4.8 ERE Precedence
A.9.4.9 ERE Expression Anchoring
A.9.5 Regular Expression Grammar
A.9.5.1 BRE/ERE Grammar Lexical Conventions
A.9.5.2 RE and Bracket Expression Grammar
A.9.5.3 ERE Grammar
A.10 Directory Structure and Devices
A.10.1 Directory Structure and Files
A.10.2 Output Devices and Terminal Types
A.11 General Terminal Interface
A.11.1 Interface Characteristics
A.11.1.1 Opening a Terminal Device File
A.11.1.2 Process Groups
A.11.1.3 The Controlling Terminal
A.11.1.4 Terminal Access Control
A.11.1.5 Input Processing and Reading Data
A.11.1.6 Canonical Mode Input Processing
A.11.1.7 Non-Canonical Mode Input Processing
A.11.1.8 Writing Data and Output Processing
A.11.1.9 Special Characters
A.11.1.10 Modem Disconnect
A.11.1.11 Closing a Terminal Device File
A.11.2 Parameters that Can be Set
A.11.2.1 The termios Structure
A.11.2.2 Input Modes
A.11.2.3 Output Modes
A.11.2.4 Control Modes
A.11.2.5 Local Modes
A.11.2.6 Special Control Characters
A.12 Utility Conventions
A.12.1 Utility Argument Syntax
A.12.2 Utility Syntax Guidelines
A.13 Namespace and Future Directions
A.14 Headers
A.14.1 Format of Entries
A.14.2 Removed Headers in Issue 8
B. Rationale for System Interfaces
B.1 Introduction
B.1.1 Change History
Changes from Issue 7 to Issue 8 (POSIX.1-2024)
New Features in Issue 8
Obsolescent Functions in Issue 8
Removed Functions in Issue 8
B.1.2 Relationship to Other Formal Standards
B.1.3 Format of Entries
B.2 General Information
B.2.1 Use and Implementation of Interfaces
B.2.1.1 Use and Implementation of Functions
B.2.1.2 Use and Implementation of Macros
B.2.2 The Compilation Environment
B.2.2.1 POSIX.1 Symbols
The _POSIX_C_SOURCE Feature Test Macro
The _XOPEN_SOURCE Feature Test Macro
The __STDC_WANT_LIB_EXT1__ Feature Test Macro
B.2.2.2 The Name Space
B.2.3 Error Numbers
Alternative Solutions for Per-Thread errno
Disallowing Return of the [EINTR] Error Code
B.2.3.1 Additional Error Numbers
B.2.4 Signal Concepts
Signal Names
B.2.4.1 Signal Generation and Delivery
B.2.4.2 Realtime Signal Generation and Delivery
B.2.4.3 Signal Actions
B.2.4.4 Signal Effects on Other Functions
B.2.5 Standard I/O Streams
B.2.5.1 Interaction of File Descriptors and Standard I/O Streams
B.2.5.2 Stream Orientation and Encoding Rules
B.2.6 File Descriptor Allocation
B.2.7 XSI Interprocess Communication
B.2.7.1 IPC General Description
B.2.8 Realtime
Advisory Information
Message Passing
Semaphores
B.2.8.1 Realtime Signals
Realtime Signals Extension
B.2.8.2 Asynchronous I/O
Overview
Models
Requirements
Standardization Issues
B.2.8.3 Memory Management
Memory Locking Functions
Mapped Files Functions
Shared Memory Functions
Typed Memory Functions
B.2.8.4 Process Scheduling
Sporadic Server Scheduling Policy
B.2.8.5 Clocks and Timers
Rationale for the Monotonic Clock
Execution Time Monitoring
Rationale Relating to Timeouts
B.2.9 Threads
Thread Creation Attributes
Thread Implementation Models
Thread-Specific Data
Barriers
Spin Locks
Robust Mutexes
Supported Threads Functions
Threads Extensions
B.2.9.1 Thread-Safety
B.2.9.2 Thread IDs
B.2.9.3 Thread Mutexes
B.2.9.4 Thread Scheduling
Scheduling Contention Scope
Scheduling Allocation Domain
Scheduling Documentation
Scheduling Contention Scope Attribute
Mixed Scopes
Dynamic Thread Scheduling Parameters Access
Mutex Initialization Scheduling Attributes
Change the Priority Ceiling of a Mutex
B.2.9.5 Thread Cancellation
Specifying the Operation to Cancel
A Special Signal Versus a Special Interface
Races Between Cancellation and Resuming Execution
Interaction of Cancellation with Asynchronous Signals
Thread Cancellation Overview
B.2.9.6 Thread Read-Write Locks
Background
Queuing of Waiting Threads
Comparison to fcntl() Locks
History of Resolution Issues
B.2.9.7 Thread Interactions with File Operations
B.2.9.8 Use of Application-Managed Thread Stacks
B.2.9.9 Synchronization Object Copies and Alternative Mappings
B.2.10 Sockets
B.2.10.1 Address Families
B.2.10.2 Addressing
B.2.10.3 Protocols
B.2.10.4 Routing
B.2.10.5 Interfaces
B.2.10.6 Socket Types
B.2.10.7 Socket I/O Mode
B.2.10.8 Socket Owner
B.2.10.9 Socket Queue Limits
B.2.10.10 Pending Error
B.2.10.11 Socket Receive Queue
B.2.10.12 Socket Out-of-Band Data State
B.2.10.13 Connection Indication Queue
B.2.10.14 Signals
B.2.10.15 Asynchronous Errors
B.2.10.16 Use of Options
B.2.10.17 Use of Sockets for Local UNIX Connections
B.2.10.18 Use of Sockets over Internet Protocols
B.2.10.19 Use of Sockets over Internet Protocols Based on IPv4
B.2.10.20 Use of Sockets over Internet Protocols Based on IPv6
B.2.11 Data Types
B.2.11.1 Defined Types
B.2.11.2 The char Type
B.2.12 Status Information
B.3 System Interfaces
B.3.1 System Interfaces Removed in this Version
B.3.1.1 STREAMS Option
B.3.1.2 Tracing Option
B.3.1.3 _longjmp() and _setjmp()
B.3.1.4 _tolower() and _toupper()
B.3.1.5 ftw()
B.3.1.6 getitimer() and setitimer()
B.3.1.7 gets()
B.3.1.8 gettimeofday()
B.3.1.9 isascii() and toascii()
B.3.1.10 pthread_getconcurrency() and pthread_setconcurrency()
B.3.1.11 rand_r()
B.3.1.12 setpgrp()
B.3.1.13 sighold(), sigpause(), and sigrelse()
B.3.1.14 sigignore(), siginterrupt(), and sigset()
B.3.1.15 tempnam()
B.3.1.16 ulimit()
B.3.1.17 utime()
B.3.2 System Interfaces Removed in the Previous Version
B.3.3 Examples for Spawn
Example Library Implementation of Spawn
I/O Redirection with Spawn
Spawning a Process Under a New User ID
Footnotes
C. Rationale for Shell and Utilities
C.1 Introduction
C.1.1 Change History
Changes from Issue 7 to Issue 8 (POSIX.1-2024)
New Features in Issue 8
Removed Utilities in Issue 8
C.1.2 Relationship to Other Documents
C.1.2.1 System Interfaces
File Read, Write, and Creation
File Removal
C.1.2.2 Concepts Derived from the ISO C Standard
C.1.3 Utility Limits
C.1.4 Grammar Conventions
C.1.5 Utility Description Defaults
NAME
SYNOPSIS
DESCRIPTION
OPTIONS
OPERANDS
STDIN
INPUT FILES
ENVIRONMENT VARIABLES
ASYNCHRONOUS EVENTS
STDOUT
STDERR
OUTPUT FILES
EXTENDED DESCRIPTION
EXIT STATUS
CONSEQUENCES OF ERRORS
APPLICATION USAGE
EXAMPLES
RATIONALE
FUTURE DIRECTIONS
SEE ALSO
CHANGE HISTORY
C.1.6 Considerations for Utilities in Support of Files of Arbitrary Size
C.1.7 Built-In Utilities
C.1.8 Intrinsic Utilities
C.2 Shell Command Language
C.2.1 Shell Introduction
C.2.2 Quoting
C.2.2.1 Escape Character (Backslash)
C.2.2.2 Single-Quotes
C.2.2.3 Double-Quotes
C.2.2.4 Dollar-Single-Quotes
C.2.3 Token Recognition
C.2.3.1 Alias Substitution
C.2.4 Reserved Words
C.2.5 Parameters and Variables
C.2.5.1 Positional Parameters
C.2.5.2 Special Parameters
C.2.5.3 Shell Variables
C.2.6 Word Expansions
C.2.6.1 Tilde Expansion
C.2.6.2 Parameter Expansion
C.2.6.3 Command Substitution
C.2.6.4 Arithmetic Expansion
C.2.6.5 Field Splitting
C.2.6.6 Pathname Expansion
C.2.6.7 Quote Removal
C.2.7 Redirection
C.2.7.1 Redirecting Input
C.2.7.2 Redirecting Output
C.2.7.3 Appending Redirected Output
C.2.7.4 Here-Document
C.2.7.5 Duplicating an Input File Descriptor
C.2.7.6 Duplicating an Output File Descriptor
C.2.7.7 Open File Descriptors for Reading and Writing
C.2.8 Exit Status and Errors
C.2.8.1 Consequences of Shell Errors
C.2.8.2 Exit Status for Commands
C.2.9 Shell Commands
C.2.9.1 Simple Commands
Order of Processing
Variable Assignments
Commands with no Command Name
Command Search and Execution
Standard File Descriptors
Non-built-in Utility Execution
Examples
C.2.9.2 Pipelines
Exit Status
C.2.9.3 Lists
Asynchronous AND-OR Lists
Sequential AND-OR Lists
AND Lists
OR Lists
C.2.9.4 Compound Commands
Grouping Commands
For Loop
Case Conditional Construct
If Conditional Construct
While Loop
Until Loop
C.2.9.5 Function Definition Command
C.2.10 Shell Grammar
C.2.10.1 Shell Grammar Lexical Conventions
C.2.10.2 Shell Grammar Rules
C.2.11 Job Control
C.2.12 Signals and Error Handling
C.2.13 Shell Execution Environment
C.2.14 Pattern Matching Notation
C.2.14.1 Patterns Matching a Single Character
C.2.14.2 Patterns Matching Multiple Characters
Examples
C.2.14.3 Patterns Used for Filename Expansion
C.2.15 Special Built-In Utilities
C.3 Utilities
C.3.1 Utilities Removed in this Version
C.3.2 Utilities Removed in the Previous Version
C.3.3 Exclusion of Utilities
D. Portability Considerations (Informative)
D.1 User Requirements
D.1.1 Configuration Interrogation
D.1.2 Process Management
D.1.3 Access to Data
D.1.4 Access to the Environment
D.1.5 Access to Determinism and Performance Enhancements
D.1.6 Operating System-Dependent Profile
D.1.7 I/O Interaction
D.1.8 Internationalization Interaction
D.1.9 C-Language Extensions
D.1.10 Command Language
D.1.11 Interactive Facilities
D.1.12 Accomplish Multiple Tasks Simultaneously
D.1.13 Complex Data Manipulation
D.1.14 File Hierarchy Manipulation
D.1.15 Locale Configuration
D.1.16 Inter-User Communication
D.1.17 System Environment
D.1.18 Printing
D.1.19 Software Development
D.2 Portability Capabilities
D.2.1 Configuration Interrogation
Unsatisfied Requirements
D.2.2 Process Management
D.2.3 Access to Data
D.2.4 Access to the Environment
Unsatisfied Requirements
D.2.5 Bounded (Realtime) Response
D.2.6 Operating System-Dependent Profile
Unsatisfied Requirements
D.2.7 I/O Interaction
Unsatisfied Requirements
D.2.8 Internationalization Interaction
Unsatisfied Requirements
D.2.9 C-Language Extensions
Unsatisfied Requirements
D.2.10 Command Language
Unsatisfied Requirements
D.2.11 Interactive Facilities
Unsatisfied Requirements
D.2.12 Accomplish Multiple Tasks Simultaneously
Unsatisfied Requirements
D.2.13 Complex Data Manipulation
Unsatisfied Requirements
D.2.14 File Hierarchy Manipulation
Unsatisfied Requirements
D.2.15 Locale Configuration
Unsatisfied Requirements
D.2.16 Inter-User Communication
Unsatisfied Requirements
D.2.17 System Environment
Unsatisfied Requirements
D.2.18 Printing
Unsatisfied Requirements
D.2.19 Software Development
Unsatisfied Requirements
D.2.20 Future Growth
D.3 Profiling Considerations
D.3.1 Configuration Options
D.3.2 Configuration Options (Shell and Utilities)
D.3.3 Configurable Limits
D.3.4 Configuration Options (System Interfaces)
D.3.5 Configurable Limits
D.3.6 Optional Behavior
Footnotes
E. Subprofiling Considerations (Informative)
E.1 Subprofiling Option Groups
Footnotes
return to top of page
UNIX® is a registered Trademark of The Open Group.
POSIX™ is a Trademark of The IEEE.
Copyright © 2001-2024 The IEEE and The Open Group, All Rights Reserved
[
Main Index
|
XBD
|
XSH
|
XCU
|
XRAT
]