RTEMS Documentation Project
RTEMS POSIX API Guide
1. Preface
1.1. Acknowledgements
2. Process Creation and Execution Manager
2.1. Introduction
2.2. Background
2.3. Operations
2.4. Directives
2.4.1. fork - Create a Process
2.4.2. execl - Execute a File
2.4.3. execv - Execute a File
2.4.4. execle - Execute a File
2.4.5. execve - Execute a File
2.4.6. execlp - Execute a File
2.4.7. execvp - Execute a File
2.4.8. pthread_atfork - Register Fork Handlers
2.4.9. wait - Wait for Process Termination
2.4.10. waitpid - Wait for Process Termination
2.4.11. _exit - Terminate a Process
3. Signal Manager
3.1. Introduction
3.2. Background
3.2.1. Signals
3.2.2. Signal Delivery
3.3. Operations
3.3.1. Signal Set Management
3.3.2. Blocking Until Signal Generation
3.3.3. Sending a Signal
3.4. Directives
3.4.1. sigaddset - Add a Signal to a Signal Set
3.4.2. sigdelset - Delete a Signal from a Signal Set
3.4.3. sigfillset - Fill a Signal Set
3.4.4. sigismember - Is Signal a Member of a Signal Set
3.4.5. sigemptyset - Empty a Signal Set
3.4.6. sigaction - Examine and Change Signal Action
3.4.7. pthread_kill - Send a Signal to a Thread
3.4.8. sigprocmask - Examine and Change Process Blocked Signals
3.4.9. pthread_sigmask - Examine and Change Thread Blocked Signals
3.4.10. kill - Send a Signal to a Process
3.4.11. sigpending - Examine Pending Signals
3.4.12. sigsuspend - Wait for a Signal
3.4.13. pause - Suspend Process Execution
3.4.14. sigwait - Synchronously Accept a Signal
3.4.15. sigwaitinfo - Synchronously Accept a Signal
3.4.16. sigtimedwait - Synchronously Accept a Signal with Timeout
3.4.17. sigqueue - Queue a Signal to a Process
3.4.18. alarm - Schedule Alarm
3.4.19. ualarm - Schedule Alarm in Microseconds
4. Process Environment Manager
4.1. Introduction
4.2. Background
4.2.1. Users and Groups
4.2.2. User and Group Names
4.2.3. Environment Variables
4.3. Operations
4.3.1. Accessing User and Group Ids
4.3.2. Accessing Environment Variables
4.4. Directives
4.4.1. getpid - Get Process ID
4.4.2. getppid - Get Parent Process ID
4.4.3. getuid - Get User ID
4.4.4. geteuid - Get Effective User ID
4.4.5. getgid - Get Real Group ID
4.4.6. getegid - Get Effective Group ID
4.4.7. setuid - Set User ID
4.4.8. setgid - Set Group ID
4.4.9. getgroups - Get Supplementary Group IDs
4.4.10. getlogin - Get User Name
4.4.11. getlogin_r - Reentrant Get User Name
4.4.12. getpgrp - Get Process Group ID
4.4.13. getrusage - Get Resource Utilization
4.4.14. setsid - Create Session and Set Process Group ID
4.4.15. setpgid - Set Process Group ID for Job Control
4.4.16. uname - Get System Name
4.4.17. times - Get process times
4.4.18. getenv - Get Environment Variables
4.4.19. setenv - Set Environment Variables
4.4.20. ctermid - Generate Terminal Pathname
4.4.21. ttyname - Determine Terminal Device Name
4.4.22. ttyname_r - Reentrant Determine Terminal Device Name
4.4.23. isatty - Determine if File Descriptor is Terminal
4.4.24. sysconf - Get Configurable System Variables
5. Files and Directories Manager
5.1. Introduction
5.2. Background
5.2.1. Path Name Evaluation
5.3. Operations
5.4. Directives
5.4.1. opendir - Open a Directory
5.4.2. readdir - Reads a directory
5.4.3. rewinddir - Resets the readdir() pointer
5.4.4. scandir - Scan a directory for matching entries
5.4.5. telldir - Return current location in directory stream
5.4.6. closedir - Ends directory read operation
5.4.7. chdir - Changes the current working directory
5.4.8. fchdir - Changes the current working directory
5.4.9. getcwd - Gets current working directory
5.4.10. open - Opens a file
5.4.11. creat - Create a new file or rewrite an existing one
5.4.12. umask - Sets a file creation mask.
5.4.13. link - Creates a link to a file
5.4.14. symlink - Creates a symbolic link to a file
5.4.15. readlink - Obtain the name of a symbolic link destination
5.4.16. mkdir - Makes a directory
5.4.17. mkfifo - Makes a FIFO special file
5.4.18. unlink - Removes a directory entry
5.4.19. rmdir - Delete a directory
5.4.20. rename - Renames a file
5.4.21. stat - Gets information about a file
5.4.22. fstat - Gets file status
5.4.23. lstat - Gets file status
5.4.24. access - Check permissions for a file
5.4.25. chmod - Changes file mode.
5.4.26. fchmod - Changes permissions of a file
5.4.27. getdents - Get directory entries
5.4.28. chown - Changes the owner and/or group of a file.
5.4.29. utime - Change access and/or modification times of an inode
5.4.30. ftruncate - truncate a file to a specified length
5.4.31. truncate - truncate a file to a specified length
5.4.32. pathconf - Gets configuration values for files
5.4.33. fpathconf - Gets configuration values for files
5.4.34. mknod - create a directory
6. Input and Output Primitives Manager
6.1. Introduction
6.2. Background
6.3. Operations
6.4. Directives
6.4.1. pipe - Create an Inter-Process Channel
6.4.2. dup - Duplicates an open file descriptor
6.4.3. dup2 - Duplicates an open file descriptor
6.4.4. close - Closes a file
6.4.5. read - Reads from a file
6.4.6. write - Writes to a file
6.4.7. fcntl - Manipulates an open file descriptor
6.4.8. lseek - Reposition read/write file offset
6.4.9. fsync - Synchronize file complete in-core state with that on disk
6.4.10. fdatasync - Synchronize file in-core data with that on disk
6.4.11. sync - Schedule file system updates
6.4.12. mount - Mount a file system
6.4.13. unmount - Unmount file systems
6.4.14. readv - Vectored read from a file
6.4.15. writev - Vectored write to a file
6.4.16. aio_read - Asynchronous Read
6.4.17. aio_write - Asynchronous Write
6.4.18. lio_listio - List Directed I/O
6.4.19. aio_error - Retrieve Error Status of Asynchronous I/O Operation
6.4.20. aio_return - Retrieve Return Status of Asynchronous I/O Operation
6.4.21. aio_cancel - Cancel Asynchronous I/O Request
6.4.22. aio_suspend - Wait for Asynchronous I/O Request
6.4.23. aio_fsync - Asynchronous File Synchronization
7. Device- and Class- Specific Functions Manager
7.1. Introduction
7.2. Background
7.3. Operations
7.4. Directives
7.4.1. cfgetispeed - Reads terminal input baud rate
7.4.2. cfgetospeed - Reads terminal output baud rate
7.4.3. cfsetispeed - Sets terminal input baud rate
7.4.4. cfsetospeed - Sets terminal output baud rate
7.4.5. tcgetattr - Gets terminal attributes
7.4.6. tcsetattr - Set terminal attributes
7.4.7. tcsendbreak - Sends a break to a terminal
7.4.8. tcdrain - Waits for all output to be transmitted to the terminal.
7.4.9. tcflush - Discards terminal data
7.4.10. tcflow - Suspends/restarts terminal output.
7.4.11. tcgetpgrp - Gets foreground process group ID
7.4.12. tcsetpgrp - Sets foreground process group ID
8. Language-Specific Services for the C Programming Language Manager
8.1. Introduction
8.2. Background
8.3. Operations
8.4. Directives
8.4.1. setlocale - Set the Current Locale
8.4.2. fileno - Obtain File Descriptor Number for this File
8.4.3. fdopen - Associate Stream with File Descriptor
8.4.4. flockfile - Acquire Ownership of File Stream
8.4.5. ftrylockfile - Poll to Acquire Ownership of File Stream
8.4.6. funlockfile - Release Ownership of File Stream
8.4.7. getc_unlocked - Get Character without Locking
8.4.8. getchar_unlocked - Get Character from stdin without Locking
8.4.9. putc_unlocked - Put Character without Locking
8.4.10. putchar_unlocked - Put Character to stdin without Locking
8.4.11. setjmp - Save Context for Non-Local Goto
8.4.12. longjmp - Non-Local Jump to a Saved Context
8.4.13. sigsetjmp - Save Context with Signal Status for Non-Local Goto
8.4.14. siglongjmp - Non-Local Jump with Signal Status to a Saved Context
8.4.15. tzset - Initialize Time Conversion Information
8.4.16. strtok_r - Reentrant Extract Token from String
8.4.17. asctime_r - Reentrant struct tm to ASCII Time Conversion
8.4.18. ctime_r - Reentrant time_t to ASCII Time Conversion
8.4.19. gmtime_r - Reentrant UTC Time Conversion
8.4.20. localtime_r - Reentrant Local Time Conversion
8.4.21. rand_r - Reentrant Random Number Generation
9. System Databases Manager
9.1. Introduction
9.2. Background
9.3. Operations
9.4. Directives
9.4.1. getgrgid - Get Group File Entry for ID
9.4.2. getgrgid_r - Reentrant Get Group File Entry
9.4.3. getgrnam - Get Group File Entry for Name
9.4.4. getgrnam_r - Reentrant Get Group File Entry for Name
9.4.5. getpwuid - Get Password File Entry for UID
9.4.6. getpwuid_r - Reentrant Get Password File Entry for UID
9.4.7. getpwnam - Password File Entry for Name
9.4.8. getpwnam_r - Reentrant Get Password File Entry for Name
10. Semaphore Manager
10.1. Introduction
10.2. Background
10.2.1. Theory
10.2.2. “sem_t” Structure
10.2.3. Building a Semaphore Attribute Set
10.3. Operations
10.3.1. Using as a Binary Semaphore
10.4. Directives
10.4.1. sem_init - Initialize an unnamed semaphore
10.4.2. sem_destroy - Destroy an unnamed semaphore
10.4.3. sem_open - Open a named semaphore
10.4.4. sem_close - Close a named semaphore
10.4.5. sem_unlink - Unlink a semaphore
10.4.6. sem_wait - Wait on a Semaphore
10.4.7. sem_trywait - Non-blocking Wait on a Semaphore
10.4.8. sem_timedwait - Wait on a Semaphore for a Specified Time
10.4.9. sem_post - Unlock a Semaphore
10.4.10. sem_getvalue - Get the value of a semaphore
11. Mutex Manager
11.1. Introduction
11.2. Background
11.2.1. Mutex Attributes
11.2.2. PTHREAD_MUTEX_INITIALIZER
11.3. Operations
11.4. Services
11.4.1. pthread_mutexattr_init - Initialize a Mutex Attribute Set
11.4.2. pthread_mutexattr_destroy - Destroy a Mutex Attribute Set
11.4.3. pthread_mutexattr_setprotocol - Set the Blocking Protocol
11.4.4. pthread_mutexattr_getprotocol - Get the Blocking Protocol
11.4.5. pthread_mutexattr_setprioceiling - Set the Priority Ceiling
11.4.6. pthread_mutexattr_getprioceiling - Get the Priority Ceiling
11.4.7. pthread_mutexattr_setpshared - Set the Visibility
11.4.8. pthread_mutexattr_getpshared - Get the Visibility
11.4.9. pthread_mutex_init - Initialize a Mutex
11.4.10. pthread_mutex_destroy - Destroy a Mutex
11.4.11. pthread_mutex_lock - Lock a Mutex
11.4.12. pthread_mutex_trylock - Poll to Lock a Mutex
11.4.13. pthread_mutex_timedlock - Lock a Mutex with Timeout
11.4.14. pthread_mutex_unlock - Unlock a Mutex
11.4.15. pthread_mutex_setprioceiling - Dynamically Set the Priority Ceiling
11.4.16. pthread_mutex_getprioceiling - Get the Current Priority Ceiling
12. Condition Variable Manager
12.1. Introduction
12.2. Background
12.3. Operations
12.4. Directives
12.4.1. pthread_condattr_init - Initialize a Condition Variable Attribute Set
12.4.2. pthread_condattr_destroy - Destroy a Condition Variable Attribute Set
12.4.3. pthread_condattr_setpshared - Set Process Shared Attribute
12.4.4. pthread_condattr_getpshared - Get Process Shared Attribute
12.4.5. pthread_cond_init - Initialize a Condition Variable
12.4.6. pthread_cond_destroy - Destroy a Condition Variable
12.4.7. pthread_cond_signal - Signal a Condition Variable
12.4.8. pthread_cond_broadcast - Broadcast a Condition Variable
12.4.9. pthread_cond_wait - Wait on a Condition Variable
12.4.10. pthread_cond_timedwait - Wait with Timeout a Condition Variable
13. Memory Management Manager
13.1. Introduction
13.2. Background
13.3. Operations
13.4. Directives
13.4.1. mlockall - Lock the Address Space of a Process
13.4.2. munlockall - Unlock the Address Space of a Process
13.4.3. mlock - Lock a Range of the Process Address Space
13.4.4. munlock - Unlock a Range of the Process Address Space
13.4.5. mmap - Map Process Addresses to a Memory Object
13.4.6. munmap - Unmap Previously Mapped Addresses
13.4.7. mprotect - Change Memory Protection
13.4.8. msync - Memory Object Synchronization
13.4.9. shm_open - Open a Shared Memory Object
13.4.10. shm_unlink - Remove a Shared Memory Object
14. Scheduler Manager
14.1. Introduction
14.2. Background
14.2.1. Priority
14.2.2. Scheduling Policies
14.3. Operations
14.4. Directives
14.4.1. sched_get_priority_min - Get Minimum Priority Value
14.4.2. sched_get_priority_max - Get Maximum Priority Value
14.4.3. sched_rr_get_interval - Get Timeslicing Quantum
14.4.4. sched_yield - Yield the Processor
15. Clock Manager
15.1. Introduction
15.2. Background
15.3. Operations
15.4. Directives
15.4.1. clock_gettime - Obtain Time of Day
15.4.2. clock_settime - Set Time of Day
15.4.3. clock_getres - Get Clock Resolution
15.4.4. sleep - Delay Process Execution
15.4.5. usleep - Delay Process Execution in Microseconds
15.4.6. nanosleep - Delay with High Resolution
15.4.7. gettimeofday - Get the Time of Day
15.4.8. time - Get time in seconds
16. Timer Manager
16.1. Introduction
16.2. Background
16.3. Operations
16.4. System Calls
16.4.1. timer_create - Create a Per-Process Timer
16.4.2. timer_delete - Delete a Per-Process Timer
16.4.3. timer_settime - Set Next Timer Expiration
16.4.4. timer_gettime - Get Time Remaining on Timer
16.4.5. timer_getoverrun - Get Timer Overrun Count
17. Message Passing Manager
17.1. Introduction
17.2. Background
17.2.1. Theory
17.2.2. Messages
17.2.3. Message Queues
17.2.4. Building a Message Queue Attribute Set
17.2.5. Notification of a Message on the Queue
17.2.6. POSIX Interpretation Issues
17.3. Operations
17.3.1. Opening or Creating a Message Queue
17.3.2. Closing a Message Queue
17.3.3. Removing a Message Queue
17.3.4. Sending a Message to a Message Queue
17.3.5. Receiving a Message from a Message Queue
17.3.6. Notification of Receipt of a Message on an Empty Queue
17.3.7. Setting the Attributes of a Message Queue
17.3.8. Getting the Attributes of a Message Queue
17.4. Directives
17.4.1. mq_open - Open a Message Queue
17.4.2. mq_close - Close a Message Queue
17.4.3. mq_unlink - Remove a Message Queue
17.4.4. mq_send - Send a Message to a Message Queue
17.4.5. mq_receive - Receive a Message from a Message Queue
17.4.6. mq_notify - Notify Process that a Message is Available
17.4.7. mq_setattr - Set Message Queue Attributes
17.4.8. mq_getattr - Get Message Queue Attributes
18. Thread Manager
18.1. Introduction
18.2. Background
18.2.1. Thread Attributes
18.3. Operations
18.4. Services
18.4.1. pthread_attr_init - Initialize a Thread Attribute Set
18.4.2. pthread_attr_destroy - Destroy a Thread Attribute Set
18.4.3. pthread_attr_setdetachstate - Set Detach State
18.4.4. pthread_attr_getdetachstate - Get Detach State
18.4.5. pthread_attr_setstacksize - Set Thread Stack Size
18.4.6. pthread_attr_getstacksize - Get Thread Stack Size
18.4.7. pthread_attr_setstackaddr - Set Thread Stack Address
18.4.8. pthread_attr_getstackaddr - Get Thread Stack Address
18.4.9. pthread_attr_setscope - Set Thread Scheduling Scope
18.4.10. pthread_attr_getscope - Get Thread Scheduling Scope
18.4.11. pthread_attr_setinheritsched - Set Inherit Scheduler Flag
18.4.12. pthread_attr_getinheritsched - Get Inherit Scheduler Flag
18.4.13. pthread_attr_setschedpolicy - Set Scheduling Policy
18.4.14. pthread_attr_getschedpolicy - Get Scheduling Policy
18.4.15. pthread_attr_setschedparam - Set Scheduling Parameters
18.4.16. pthread_attr_getschedparam - Get Scheduling Parameters
18.4.17. pthread_attr_getaffinity_np - Get Thread Affinity Attribute
18.4.18. pthread_attr_setaffinity_np - Set Thread Affinity Attribute
18.4.19. pthread_create - Create a Thread
18.4.20. pthread_exit - Terminate the Current Thread
18.4.21. pthread_detach - Detach a Thread
18.4.22. pthread_getconcurrency - Obtain Thread Concurrency
18.4.23. pthread_setconcurrency - Set Thread Concurrency
18.4.24. pthread_getattr_np - Get Thread Attributes
18.4.25. pthread_join - Wait for Thread Termination
18.4.26. pthread_self - Get Thread ID
18.4.27. pthread_equal - Compare Thread IDs
18.4.28. pthread_once - Dynamic Package Initialization
18.4.29. pthread_setschedparam - Set Thread Scheduling Parameters
18.4.30. pthread_getschedparam - Get Thread Scheduling Parameters
18.4.31. pthread_getaffinity_np - Get Thread Affinity
18.4.32. pthread_setaffinity_np - Set Thread Affinity
19. Key Manager
19.1. Introduction
19.2. Background
19.3. Operations
19.4. Directives
19.4.1. pthread_key_create - Create Thread Specific Data Key
19.4.2. pthread_key_delete - Delete Thread Specific Data Key
19.4.3. pthread_setspecific - Set Thread Specific Key Value
19.4.4. pthread_getspecific - Get Thread Specific Key Value
20. Thread Cancellation Manager
20.1. Introduction
20.2. Background
20.3. Operations
20.4. Directives
20.4.1. pthread_cancel - Cancel Execution of a Thread
20.4.2. pthread_setcancelstate - Set Cancelability State
20.4.3. pthread_setcanceltype - Set Cancelability Type
20.4.4. pthread_testcancel - Create Cancellation Point
20.4.5. pthread_cleanup_push - Establish Cancellation Handler
20.4.6. pthread_cleanup_pop - Remove Cancellation Handler
21. Services Provided by C Library (libc)
21.1. Introduction
21.2. Standard Utility Functions (stdlib.h)
21.3. Character Type Macros and Functions (ctype.h)
21.4. Input and Output (stdio.h)
21.5. Strings and Memory (string.h)
21.6. Signal Handling (signal.h)
21.7. Time Functions (time.h)
21.8. Locale (locale.h)
21.9. Reentrant Versions of Functions
21.10. Miscellaneous Macros and Functions
21.11. Variable Argument Lists
21.12. Reentrant System Calls
22. Services Provided by the Math Library (libm)
22.1. Introduction
22.2. Standard Math Functions (math.h)
23. Device Control
23.1. Introduction
23.2. Background
23.3. Operations
23.4. System Calls
23.4.1. posix_devctl - Control a Device
24. Status of Implementation
25. Command and Variable Index
Index
RTEMS POSIX API Guide
25.
Command and Variable Index
25.
Command and Variable Index
¶