Поддержка разделена на субгруппы, представленные в стандарте
[POSIX] E.1 Subprofiling Option Groups
Поддержка и функционал включаются/отключаются с использованием определений в заголовке <unistd.h>. Реализация функций синхронизации основана на использовании атомарных не блокирующих операций с счетчиком семафора, см. <semaphore.h>.
Сокр | Определение |
---|---|
ADV | POSIX_ADVISORY_INFO (Advisory information) |
AIO | POSIX_ASYNCHRONOUS_IO (Asynchronous I/O) |
BAR | POSIX_BARRIERS (Barriers) |
CS | POSIX_CLOCK_SELECTION (Clock Selection) |
MF | POSIX_MAPPED_FILES (Memory Mapped Files) |
MPR | POSIX_MEMORY_PROTECTION (Memory Protection) |
MSG | POSIX_MESSAGE_PASSING (Message Passing) |
MON | POSIX_MONOTONIC_CLOCK (Monotonic clock) |
PIO | POSIX_PRIORITIZED_IO (Prioritized input and output) |
RS | POSIX_RAW_SOCKETS (Raw sockets) |
RWL | POSIX_READER_WRITER_LOCKS (Read-Write Locks) |
RTS | POSIX_REALTIME_SIGNALS (Realtime Signals Extension) |
SEM | POSIX_SEMAPHORES (Semaphores) |
SHM | POSIX_SHARED_MEMORY_OBJECTS (Shared Memory Objects) |
SIG | POSIX_SIGNALS (Signals) |
SIO | POSIX_SYNCHRONIZED_IO (Synchronized I/O) |
SPI | POSIX_SPIN_LOCKS (Spin Locks) |
THR | POSIX_THREADS (Threads) |
TCT | POSIX_THREAD_CPUTIME (CPU-time clocks) |
TPS | POSIX_THREAD_PRIORITY_SCHEDULING (Thread Execution Scheduling) |
TSH | POSIX_THREAD_PROCESS_SHARED (Process-shared Synchronization) |
TSP | POSIX_THREAD_SPORADIC_SERVER (Thread Sporadic server) |
TMO | POSIX_TIMEOUTS (Timeouts) |
TMR | POSIX_TIMERS (Timers) |
TYM | POSIX_TYPED_MEMORY_OBJECTS (Typed Memory objects) |
- THR Threads, в RTOS представлены треды C11 совместимые, планируется поддержка pthread, без атрибутов
POSIX Threads | C11 threads.h |
---|---|
pthread_cond_broadcast( ) | cnd_broadcast |
pthread_cond_destroy( ) | cnd_destroy |
pthread_cond_init( ) | cnd_init |
pthread_cond_signal( ) | cnd_signal |
pthread_cond_timedwait( ) | cnd_timedwait |
pthread_cond_wait( ) | cnd_wait |
pthread_create( ) | thrd_create |
pthread_detach( ) | thrd_detach |
pthread_equal( ) | thrd_equal |
pthread_exit( ) | thrd_exit |
pthread_join( ) | thrd_join |
pthread_self( ) | thrd_current |
sched_yield( ) | thrd_yield |
nanosleep( ) | thrd_sleep |
pthread_getspecific( ) | tss_get |
pthread_setspecific( ) | tss_set |
pthread_key_create( ) | tss_create |
pthread_key_delete( ) | tss_delete |
pthread_mutex_destroy( ) | mtx_destroy |
pthread_mutex_init( ) | mtx_init |
pthread_mutex_lock( ) | mtx_lock |
pthread_mutex_timedlock( ) | mtx_timedlock |
pthread_mutex_trylock( ) | mtx_trylock |
pthread_mutex_unlock( ) | mtx_unlock |
pthread_once( ) | call_once |
- POSIX_THREADS_BASE: Base Threads
- pthread_atfork( ),
+ pthread_attr_destroy( ), pthread_attr_getdetachstate( ), pthread_attr_getschedparam( ),
+ pthread_attr_init( ), pthread_attr_setdetachstate( ), pthread_attr_setschedparam( ),
- pthread_cancel( ), pthread_cleanup_pop( ), pthread_cleanup_push( ),
+ pthread_cond_broadcast( ), pthread_cond_destroy( ), pthread_cond_init( ), pthread_cond_signal( ),
+ pthread_cond_timedwait( ), pthread_cond_wait( ),
pthread_condattr_destroy( ), pthread_condattr_init( ),
+ pthread_create( ), pthread_detach( ), pthread_equal( ), pthread_exit( ), pthread_join( ),
+ pthread_getspecific( ), pthread_setspecific( ), thread_key_create( ), pthread_key_delete( ),
+ pthread_mutex_destroy( ), pthread_mutex_init( ), pthread_mutex_lock( ),
+ pthread_mutex_timedlock( ), pthread_mutex_trylock( ), pthread_mutex_unlock( ),
pthread_mutexattr_destroy( ), pthread_mutexattr_init( ),
+ pthread_once( ), pthread_self( ), pthread_kill( ), pthread_sigmask( ),
- pthread_setcancelstate( ), pthread_setcanceltype( ), pthread_testcancel( )
- RTS POSIX_REALTIME_SIGNALS: Realtime Signals
+ sigqueue( ), sigtimedwait( ), sigwaitinfo( )
- SEM POSIX_SEMAPHORES: Semaphores:
+ sem_close( ), sem_open( ), sem_unlink( ),
+ sem_destroy( ),sem_getvalue( ),sem_init( ),sem_post( ),sem_timedwait( ), sem_trywait( ), sem_wait( )
- MSG POSIX_MESSAGE_PASSING: Message Passing
+ mq_close( ), mq_open( ), mq_unlink( ),
+ mq_getattr( ), mq_notify( ), mq_setattr( ),
+ mq_receive( ), mq_send( ), mq_timedreceive( ), mq_timedsend( )
- TMR POSIX_TIMERS: Timers
+ clock_getres( ), clock_gettime( ), clock_settime( ), nanosleep( ),
+ timer_create( ), timer_delete( ), timer_getoverrun( ), timer_gettime( ), timer_settime( )
- POSIX_RW_LOCKS: Reader Writer Locks
+ pthread_rwlock_destroy( ), pthread_rwlock_init( ), pthread_rwlock_rdlock( ),
+ pthread_rwlock_timedrdlock( ), pthread_rwlock_timedwrlock( ), pthread_rwlock_tryrdlock( ),
+ pthread_rwlock_trywrlock( ), pthread_rwlock_unlock( ), pthread_rwlock_wrlock( ),
- pthread_rwlockattr_destroy( ), pthread_rwlockattr_init( ),
- pthread_rwlockattr_getpshared( ), pthread_rwlockattr_setpshared( )
- POSIX_SPIN_LOCKS: Spin Locks
+ pthread_spin_destroy( ), pthread_spin_init( ), pthread_spin_lock( ), pthread_spin_trylock( ), pthread_spin_unlock( )
- POSIX_BARRIERS: Barriers
+ pthread_barrier_destroy( ), pthread_barrier_init( ), pthread_barrier_wait( ),
pthread_barrierattr( )
- POSIX_DYNAMIC_LINKING: Dynamic Linking
+ dlclose( ), dlerror( ), dlopen( ), dlsym( )
- POSIX_SIGNALS: Signals
- abort( ), alarm( ), kill( ), pause( ), raise( ),
+ sigaddset( ), sigdelset( ), sigemptyset( ), sigfillset( ), sigismember( ),
+ sigprocmask( ), pthread_sigmask( ), pthread_kill( ),
- signal( ), sigaction( ), sigpending( ), sigsuspend( ), sigwait( )
- POSIX_DEVICE_IO: Device Input and Output
+ FD_CLR( ), FD_ISSET( ), FD_SET( ), FD_ZERO( ),
+ clearerr( ), close( ), open( ), read( ), write( )
fdopen( ), feof( ), fflush( ),
ferror( ), fgetc( ), fgets( ),
+ fopen( ), fprintf( ), fputc( ), fputs( ), fread( ), freopen( ), fileno( ),
fscanf( ), fwrite( ), getc( ), getchar( ), gets( ), perror( ),
+ poll( ), printf( ), pread( ), pselect( ), putchar( ), puts( ),
putc( ), scanf( ), select( ), setbuf( ), setvbuf( ), stderr, stdin, stdout,
ungetc( ), vfprintf( ), vfscanf( ), vprintf( ), vscanf( ),
- POSIX_NETWORKING: Networking
+ accept( ), bind( ), connect( ),
endhostent( ), endnetent( ), endprotoent( ), endservent( ),
freeaddrinfo( ), gai_strerror( ), getaddrinfo( ), gethostent( ), gethostname( ), getnameinfo( ),
getnetbyaddr( ), getnetbyname( ), getnetent( ), getpeername( ), getprotobyname( ),
getprotobynumber( ), getprotoent( ), getservbyname( ), getservbyport( ), getservent( ),
getsockname( ), getsockopt( ), htonl( ), htons( ), if_freenameindex( ), if_indextoname( ),
if_nameindex( ), if_nametoindex( ), inet_addr( ), inet_ntoa( ), inet_ntop( ), inet_pton( ), listen( ),
+ ntohl( ), ntohs( ), recv( ), recvfrom( ), recvmsg( ), send( ), sendmsg( ), sendto( ),
sethostent( ), setnetent( ), setprotoent( ), setservent( ),
+ setsockopt( ), shutdown( ), socket( ),
sockatmark( ), socketpair( )
- POSIX_FILE_SYSTEM: File System
+ access( ), chdir( ), closedir( ), creat( ), fchdir( ), fpathconf( ), fstat( ), link( ),
+ mkdir( ), mkstemp( ), opendir( ), pathconf( ), remove( ), rename( ), rmdir( ),
+ stat( ), tmpfile( ), truncate( ), unlink(),
- fstatvfs( ), getcwd( ), readdir( ), rewinddir( ), statvfs( ), tmpnam( ), utime( )
- POSIX_FILE_SYSTEM_R: Thread-Safe File System
+ readdir_r( )
- POSIX_FILE_SYSTEM_FD: File System File Descriptor Routines
+ faccessat( ), fdopendir( ), fstatat( ), linkat( ), mkdirat( ), openat( ),
+ renameat( ), unlinkat( ), utimensat( )
- POSIX_FILE_ATTRIBUTES: File Attributes
+ chmod( ), chown( ), fchmod( ), fchown( ), umask( )
- POSIX_FILE_ATTRIBUTES_FD: File Attributes File Descriptor Routines
+ fchmodat( ), fchownat( )
- POSIX_FILE_LOCKING: Thread-Safe Stdio Locking
flockfile( ), ftrylockfile( ), funlockfile( ),
getc_unlocked( ), getchar_unlocked( ),
putc_unlocked( ), putchar_unlocked( )
- POSIX_MAPPED_FILES: Memory Mapped Files
+ mmap( ), munmap( )
- POSIX_MEMORY_PROTECTION: Memory Protection
mprotect( )
- POSIX_SINGLE_PROCESS: Single Process
- confstr( ), setenv( ), unsetenv( ),
+ environ, errno, getenv( ), sysconf( ), uname( )
- POSIX_THREAD_SAFE_FUNCTIONS: Thread-Safe Functions On POSIX-conforming systems, the symbolic constant _POSIX_THREAD_SAFE_FUNCTIONS is always defined. Therefore, the following functions are always supported:
- asctime_r( ) ctime_r( )
flockfile( ) ftrylockfile( ) funlockfile( )
- getc_unlocked( ) getchar_unlocked( )
getgrgid_r( ) getgrnam_r( ) getpwnam_r( ) getpwuid_r( )
+ gmtime_r( ) localtime_r( )
+ putc_unlocked( ) putchar_unlocked( )
rand_r( ) strerror_r( )
+ readdir_r( ) strtok_r( )
[POSIX.1-2017] IEEE Std 1003.1tm -2017 (Revision of IEEE Std 1003.1-2008) The Open Group Standard Base Specfications, Issue 7 https://pubs.opengroup.org/onlinepubs/9699919799/