| ===== |
| POSIX |
| ===== |
| |
| Apache NuttX is **not** licensed to use the POSIX trademark. NuttX uses the |
| POSIX standard as a development guideline only. |
| |
| This page summarizes supported POSIX features in NuttX. |
| |
| POSIX Subprofiles |
| ================= |
| |
| POSIX PSE51 - Minimal |
| --------------------- |
| |
| Units of Functionality Requirements: |
| |
| +------------------------------+----------------+--------------------------+ |
| | Symbol | Support | Remarks | |
| +==============================+================+==========================+ |
| | POSIX_ADA_LANG_SUPPORT | No | | |
| +------------------------------+----------------+--------------------------+ |
| | `POSIX_C_LANG_JUMP`_ | Yes | ``CONFIG_ARCH_SETJMP_H`` | |
| +------------------------------+----------------+--------------------------+ |
| | `POSIX_C_LANG_SUPPORT`_ | 94/105 [#fn1]_ | | |
| +------------------------------+----------------+--------------------------+ |
| | `POSIX_DEVICE_IO`_ | Yes | | |
| +------------------------------+----------------+--------------------------+ |
| | `POSIX_FILE_LOCKING`_ | Yes | | |
| +------------------------------+----------------+--------------------------+ |
| | `POSIX_SINGLE_PROCESS`_ | 8/9 | | |
| +------------------------------+----------------+--------------------------+ |
| | `POSIX_THREADS_BASE`_ | Yes | | |
| +------------------------------+----------------+--------------------------+ |
| | `POSIX_THREADS_EXT`_ [#fn2]_ | Yes | | |
| +------------------------------+----------------+--------------------------+ |
| | `XSI_THREADS_EXT`_ | Yes | | |
| +------------------------------+----------------+--------------------------+ |
| |
| .. [#fn1] ``fenv.h`` related functions not supported. |
| .. [#fn2] In older revisions this was called ``XSI_THREAD_MUTEX_EXT`` |
| and some of interfaces was moved from ``POSIX_THREADS_EXT`` |
| to ``POSIX_THREADS_EXT``. |
| |
| POSIX.1 Option Requirements: |
| |
| +-------------------------------------------------+-------------+----------------------------------+ |
| |Symbol | Support | Remarks | |
| +=================================================+=============+==================================+ |
| |`_POSIX_CLOCK_SELECTION`_ | Yes | | |
| +-------------------------------------------------+-------------+----------------------------------+ |
| |`_POSIX_FSYNC`_ | Yes | | |
| +-------------------------------------------------+-------------+----------------------------------+ |
| |`_POSIX_MEMLOCK`_ | Yes [#fn3]_ | | |
| +-------------------------------------------------+-------------+----------------------------------+ |
| |`_POSIX_MEMLOCK_RANGE`_ | Yes [#fn3]_ | | |
| +-------------------------------------------------+-------------+----------------------------------+ |
| |`_POSIX_MONOTONIC_CLOCK`_ | Yes | | |
| +-------------------------------------------------+-------------+----------------------------------+ |
| |`_POSIX_NO_TRUNC`_ | No | | |
| +-------------------------------------------------+-------------+----------------------------------+ |
| |`_POSIX_REALTIME_SIGNALS`_ | 201712L | | |
| +-------------------------------------------------+-------------+----------------------------------+ |
| |`_POSIX_SEMAPHORES`_ | 201712L | | |
| +-------------------------------------------------+-------------+----------------------------------+ |
| |`_POSIX_SHARED_MEMORY_OBJECTS`_ | 201712L | | |
| +-------------------------------------------------+-------------+----------------------------------+ |
| |`_POSIX_SYNCHRONIZED_IO`_ | Yes | | |
| +-------------------------------------------------+-------------+----------------------------------+ |
| |`_POSIX_THREAD_ATTR_STACKADDR`_ | Yes | | |
| +-------------------------------------------------+-------------+----------------------------------+ |
| |`_POSIX_THREAD_ATTR_STACKSIZE`_ | Yes | | |
| +-------------------------------------------------+-------------+----------------------------------+ |
| |`_POSIX_THREAD_CPUTIME`_ | 201712L | | |
| +-------------------------------------------------+-------------+----------------------------------+ |
| |`_POSIX_THREAD_PRIO_INHERIT`_ | Yes | ``CONFIG_PRIORITY_INHERITANCE`` | |
| +-------------------------------------------------+-------------+----------------------------------+ |
| |`_POSIX_THREAD_PRIO_PROTECT`_ | Yes | ``CONFIG_PRIORITY_PROTECT`` | |
| +-------------------------------------------------+-------------+----------------------------------+ |
| | `_POSIX_THREAD_PRIORITY_SCHEDULING`_ | 201712L | | |
| +-------------------------------------------------+-------------+----------------------------------+ |
| | `_POSIX_THREAD_SPORADIC_SERVER`_ | Yes | ``CONFIG_SCHED_SPORADIC`` | |
| +-------------------------------------------------+-------------+----------------------------------+ |
| | `_POSIX_TIMEOUTS`_ [#fn4]_ | Yes | | |
| +-------------------------------------------------+-------------+----------------------------------+ |
| | `_POSIX_TIMERS`_ | Yes | ``!CONFIG_DISABLE_POSIX_TIMERS`` | |
| +-------------------------------------------------+-------------+----------------------------------+ |
| | `_POSIX2_C_DEV`_ | Yes [#fn5]_ | | |
| +-------------------------------------------------+-------------+----------------------------------+ |
| | `_POSIX2_SW_DEV`_ | Yes [#fn5]_ | | |
| +-------------------------------------------------+-------------+----------------------------------+ |
| |
| .. [#fn3] NuttX provides dummy implementations for ``_POSIX_MEMLOCK`` and |
| ``_POSIX_MEMLOCK_RANGE`` which is sufficient for devices without MMU, |
| but doesn't meet the requirement for devices with MMU. |
| .. [#fn4] Deprecated in new revisions of POSIX. Merged into other base options. |
| .. [#fn5] Required only for the development platform. |
| For PSE54 this requirement is also for execution platform which is |
| not supported. |
| |
| Requirements for Other Standards: |
| |
| +-----------------------------+---------+---------+ |
| | Symbol | Support | Remarks | |
| +=============================+=========+=========+ |
| | POSIX.26 | ? | | |
| +-----------------------------+---------+---------+ |
| |
| POSIX PSE52 - Real-Time Controller |
| ---------------------------------- |
| |
| The Realtime Controller System Profile (PSE52) includes all features from PSE51. |
| |
| Units of Functionality Requirements: |
| |
| +-----------------------------+-------------+---------------------+ |
| | Symbol | Support | Remarks | |
| +=============================+=============+=====================+ |
| | `POSIX_C_LANG_MATH`_ | Yes [#fn6]_ | ``CONFIG_LIBM_XXX`` | |
| +-----------------------------+-------------+---------------------+ |
| | `POSIX_FD_MGMT`_ | Yes | | |
| +-----------------------------+-------------+---------------------+ |
| | `POSIX_FILE_SYSTEM`_ | Yes | | |
| +-----------------------------+-------------+---------------------+ |
| |
| .. [#fn6] NuttX supports different libm implementations with different sets of |
| supported functions. libm support in NuttX is controlled by Kconfig |
| choice option. |
| |
| POSIX.1 Option Requirements |
| |
| +------------------------------------+---------+----------------------------+ |
| | Symbol | Support | Remarks | |
| +====================================+=========+============================+ |
| | `_POSIX_MAPPED_FILES`_ | 201712L | | |
| +------------------------------------+---------+----------------------------+ |
| | `_POSIX_MESSAGE_PASSING`_ | Yes | ``!CONFIG_DISABLE_MQUEUE`` | |
| +------------------------------------+---------+----------------------------+ |
| | _POSIX_TRACE [#fn7]_ | No | | |
| +------------------------------------+---------+----------------------------+ |
| | _POSIX_TRACE_EVENT_FILTER [#fn7]_ | No | | |
| +------------------------------------+---------+----------------------------+ |
| | _POSIX_TRACE_LOG [#fn7]_ | No | | |
| +------------------------------------+---------+----------------------------+ |
| |
| .. [#fn7] ``_POSIX_TRACE*`` are obsolete. |
| |
| POSIX PSE53 - Dedicated |
| ----------------------- |
| |
| The Dedicated Realtime System Profile (PSE53) includes all features from PSE52 and PSE51. |
| |
| Units of Functionality Requirements: |
| |
| +-----------------------------+---------+--------------------------+ |
| | Symbol | Support | Remarks | |
| +=============================+=========+==========================+ |
| | POSIX_EVENT_MGMT [#fn8]_ | Yes | | |
| +-----------------------------+---------+--------------------------+ |
| | `POSIX_MULTI_PROCESS`_ | 25/29 | | |
| +-----------------------------+---------+--------------------------+ |
| | `POSIX_NETWORKING`_ | Yes | ``CONFIG_NET`` | |
| +-----------------------------+---------+--------------------------+ |
| | `POSIX_PIPE`_ | Yes | ``CONFIG_PIPES`` | |
| +-----------------------------+---------+--------------------------+ |
| | `POSIX_SIGNAL_JUMP`_ | Yes | ``CONFIG_ARCH_SETJMP_H`` | |
| +-----------------------------+---------+--------------------------+ |
| |
| .. [#fn8] Deprecated in new revisions of POSIX. |
| Merged into ``POSIX_DEVICE_IO``. |
| |
| POSIX.1 Option Requirements |
| |
| +---------------------------------+-------------+---------------------------+ |
| | Symbol | Support | Remarks | |
| +=================================+=============+===========================+ |
| | `_POSIX_ASYNCHRONOUS_IO`_ | 201712L | ``CONFIG_FS_AIO`` | |
| +---------------------------------+-------------+---------------------------+ |
| | `_POSIX_CPUTIME`_ | 201712L | | |
| +---------------------------------+-------------+---------------------------+ |
| | `_POSIX_MEMORY_PROTECTION`_ | Yes [#fn9]_ | | |
| +---------------------------------+-------------+---------------------------+ |
| | `_POSIX_PRIORITIZED_IO`_ | 201712L | | |
| +---------------------------------+-------------+---------------------------+ |
| | `_POSIX_PRIORITY_SCHEDULING`_ | Yes | | |
| +---------------------------------+-------------+---------------------------+ |
| | `_POSIX_RAW_SOCKETS`_ | Yes | | |
| +---------------------------------+-------------+---------------------------+ |
| | `_POSIX_SPAWN`_ | 13/17 | ``CONFIG_BUILD_KERNEL`` | |
| +---------------------------------+-------------+---------------------------+ |
| | `_POSIX_SPORADIC_SERVER`_ | Yes | ``CONFIG_SCHED_SPORADIC`` | |
| +---------------------------------+-------------+---------------------------+ |
| | `_POSIX_THREAD_PROCESS_SHARED`_ | 201712L | | |
| +---------------------------------+-------------+---------------------------+ |
| |
| .. [#fn9] NuttX provides dummy implementations for ``_POSIX_MEMORY_PROTECTION`` |
| which is sufficient for devices without MMU, but doesn't meet the |
| requirement for devices with MMU. |
| |
| POSIX PSE54 - Multipurpose |
| -------------------------- |
| |
| The Multipurpose Realtime System Profile (PSE54) includes all features from PSE53, PSE52 and PSE51. |
| |
| Units of Functionality Requirements: |
| |
| +------------------------------+---------+--------------------------------+ |
| | Symbol | Support | Remarks | |
| +==============================+=========+================================+ |
| | `POSIX_C_LANG_WIDE_CHAR`_ | | | |
| +------------------------------+---------+--------------------------------+ |
| | `POSIX_DEVICE_SPECIFIC`_ | 3/15 | ``CONFIG_TERMIOS=y`` | |
| +------------------------------+---------+--------------------------------+ |
| | `POSIX_FIFO`_ | Yes | ``CONFIG_DEV_FIFO_SIZE > 0`` | |
| +------------------------------+---------+--------------------------------+ |
| | `POSIX_FILE_ATTRIBUTES`_ | Yes | ``CONFIG_PSEUDOFS_ATTRIBUTES`` | |
| +------------------------------+---------+--------------------------------+ |
| | `POSIX_FILE_SYSTEM_EXT`_ | Yes | | |
| +------------------------------+---------+--------------------------------+ |
| | `POSIX_JOB_CONTROL`_ | 1/4 | | |
| +------------------------------+---------+--------------------------------+ |
| | `POSIX_REGEXP`_ | Yes | | |
| +------------------------------+---------+--------------------------------+ |
| | `POSIX_SHELL_FUNC`_ | 3/5 | | |
| +------------------------------+---------+--------------------------------+ |
| | `POSIX_STRING_MATCHING`_ | Yes | | |
| +------------------------------+---------+--------------------------------+ |
| | `POSIX_SYMBOLIC_LINKS`_ | Yes | ``CONFIG_PSEUDOFS_SOFTLINKS`` | |
| +------------------------------+---------+--------------------------------+ |
| | `POSIX_SYSTEM_DATABASE`_ | Yes | | |
| +------------------------------+---------+--------------------------------+ |
| | `POSIX_USER_GROUPS`_ | 8/10 | | |
| +------------------------------+---------+--------------------------------+ |
| | POSIX_WIDE_CHAR_IO [#fn10]_ | | | |
| +------------------------------+---------+--------------------------------+ |
| | `XSI_DYNAMIC_LINKING`_ | Yes | | |
| +------------------------------+---------+--------------------------------+ |
| | `XSI_SYSTEM_LOGGING`_ | 1/4 | | |
| +------------------------------+---------+--------------------------------+ |
| |
| .. [#fn10] Deprecated in new revision of POSIX. |
| Moved to ``POSIX_WIDE_CHAR_DEVICE_IO``. |
| |
| POSIX.1 Option Requirements |
| |
| +-----------------------------+---------+---------+ |
| | Symbol | Support | Remarks | |
| +=============================+=========+=========+ |
| | `_POSIX_ADVISORY_INFO`_ | 2/4 | | |
| +-----------------------------+---------+---------+ |
| | `_POSIX_SAVED_IDS`_ | No | | |
| +-----------------------------+---------+---------+ |
| | `_POSIX_VDISABLE`_ | No | | |
| +-----------------------------+---------+---------+ |
| | `_POSIX2_CHAR_TERM`_ | ? | | |
| +-----------------------------+---------+---------+ |
| | `_POSIX2_FORT_RUN`_ | No | | |
| +-----------------------------+---------+---------+ |
| | `_POSIX2_UPE`_ | No | | |
| +-----------------------------+---------+---------+ |
| |
| Functionality Requirements |
| ========================== |
| |
| POSIX_C_LANG_JUMP |
| ----------------- |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | :c:func:`longjmp` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`setjmp` | Yes | |
| +--------------------------------+---------+ |
| |
| POSIX_C_LANG_SUPPORT |
| -------------------- |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | abs() | Yes | |
| +--------------------------------+---------+ |
| | asctime() | Yes | |
| +--------------------------------+---------+ |
| | asctime_r() | Yes | |
| +--------------------------------+---------+ |
| | atof() | Yes | |
| +--------------------------------+---------+ |
| | atoi() | Yes | |
| +--------------------------------+---------+ |
| | atol() | Yes | |
| +--------------------------------+---------+ |
| | atoll() | Yes | |
| +--------------------------------+---------+ |
| | bsearch() | Yes | |
| +--------------------------------+---------+ |
| | calloc() | Yes | |
| +--------------------------------+---------+ |
| | ctime() | Yes | |
| +--------------------------------+---------+ |
| | ctime_r() | Yes | |
| +--------------------------------+---------+ |
| | difftime() | Yes | |
| +--------------------------------+---------+ |
| | div() | Yes | |
| +--------------------------------+---------+ |
| | feclearexcept() | No | |
| +--------------------------------+---------+ |
| | fegetenv() | No | |
| +--------------------------------+---------+ |
| | fegetexceptflag() | No | |
| +--------------------------------+---------+ |
| | fegetround() | No | |
| +--------------------------------+---------+ |
| | feholdexcept() | No | |
| +--------------------------------+---------+ |
| | feraiseexcept() | No | |
| +--------------------------------+---------+ |
| | fesetenv() | No | |
| +--------------------------------+---------+ |
| | fesetexceptflag() | No | |
| +--------------------------------+---------+ |
| | fesetround() | No | |
| +--------------------------------+---------+ |
| | fetestexcept() | No | |
| +--------------------------------+---------+ |
| | feupdateenv() | No | |
| +--------------------------------+---------+ |
| | free() | Yes | |
| +--------------------------------+---------+ |
| | gmtime() | Yes | |
| +--------------------------------+---------+ |
| | gmtime_r() | Yes | |
| +--------------------------------+---------+ |
| | imaxabs() | Yes | |
| +--------------------------------+---------+ |
| | imaxdiv() | Yes | |
| +--------------------------------+---------+ |
| | isalnum() | Yes | |
| +--------------------------------+---------+ |
| | isalpha() | Yes | |
| +--------------------------------+---------+ |
| | isblank() | Yes | |
| +--------------------------------+---------+ |
| | iscntrl() | Yes | |
| +--------------------------------+---------+ |
| | isdigit() | Yes | |
| +--------------------------------+---------+ |
| | isgraph() | Yes | |
| +--------------------------------+---------+ |
| | islower() | Yes | |
| +--------------------------------+---------+ |
| | isprint() | Yes | |
| +--------------------------------+---------+ |
| | ispunct() | Yes | |
| +--------------------------------+---------+ |
| | isspace() | Yes | |
| +--------------------------------+---------+ |
| | isupper() | Yes | |
| +--------------------------------+---------+ |
| | isxdigit() | Yes | |
| +--------------------------------+---------+ |
| | labs() | Yes | |
| +--------------------------------+---------+ |
| | ldiv() | Yes | |
| +--------------------------------+---------+ |
| | llabs() | Yes | |
| +--------------------------------+---------+ |
| | lldiv() | Yes | |
| +--------------------------------+---------+ |
| | localeconv() | Yes | |
| +--------------------------------+---------+ |
| | localtime() | Yes | |
| +--------------------------------+---------+ |
| | localtime_r() | Yes | |
| +--------------------------------+---------+ |
| | malloc() | Yes | |
| +--------------------------------+---------+ |
| | memchr() | Yes | |
| +--------------------------------+---------+ |
| | memcmp() | Yes | |
| +--------------------------------+---------+ |
| | memcpy() | Yes | |
| +--------------------------------+---------+ |
| | memmove() | Yes | |
| +--------------------------------+---------+ |
| | memset() | Yes | |
| +--------------------------------+---------+ |
| | mktime() | Yes | |
| +--------------------------------+---------+ |
| | qsort() | Yes | |
| +--------------------------------+---------+ |
| | rand() | Yes | |
| +--------------------------------+---------+ |
| | rand_r() | Yes | |
| +--------------------------------+---------+ |
| | realloc() | Yes | |
| +--------------------------------+---------+ |
| | setlocale() | Yes | |
| +--------------------------------+---------+ |
| | snprintf() | Yes | |
| +--------------------------------+---------+ |
| | sprintf() | Yes | |
| +--------------------------------+---------+ |
| | srand() | Yes | |
| +--------------------------------+---------+ |
| | sscanf() | Yes | |
| +--------------------------------+---------+ |
| | strcat() | Yes | |
| +--------------------------------+---------+ |
| | strchr() | Yes | |
| +--------------------------------+---------+ |
| | strcmp() | Yes | |
| +--------------------------------+---------+ |
| | strcoll() | Yes | |
| +--------------------------------+---------+ |
| | strcpy() | Yes | |
| +--------------------------------+---------+ |
| | strcspn() | Yes | |
| +--------------------------------+---------+ |
| | strerror() | Yes | |
| +--------------------------------+---------+ |
| | strerror_r() | Yes | |
| +--------------------------------+---------+ |
| | strftime() | Yes | |
| +--------------------------------+---------+ |
| | strlen() | Yes | |
| +--------------------------------+---------+ |
| | strncat() | Yes | |
| +--------------------------------+---------+ |
| | strncmp() | Yes | |
| +--------------------------------+---------+ |
| | strncpy() | Yes | |
| +--------------------------------+---------+ |
| | strpbrk() | Yes | |
| +--------------------------------+---------+ |
| | strrchr() | Yes | |
| +--------------------------------+---------+ |
| | strspn() | Yes | |
| +--------------------------------+---------+ |
| | strstr() | Yes | |
| +--------------------------------+---------+ |
| | strtod() | Yes | |
| +--------------------------------+---------+ |
| | strtof() | Yes | |
| +--------------------------------+---------+ |
| | strtoimax() | Yes | |
| +--------------------------------+---------+ |
| | strtok() | Yes | |
| +--------------------------------+---------+ |
| | strtok_r() | Yes | |
| +--------------------------------+---------+ |
| | strtol() | Yes | |
| +--------------------------------+---------+ |
| | strtold() | Yes | |
| +--------------------------------+---------+ |
| | strtoll() | Yes | |
| +--------------------------------+---------+ |
| | strtoul() | Yes | |
| +--------------------------------+---------+ |
| | strtoull() | Yes | |
| +--------------------------------+---------+ |
| | strtoumax() | Yes | |
| +--------------------------------+---------+ |
| | strxfrm() | Yes | |
| +--------------------------------+---------+ |
| | time() | Yes | |
| +--------------------------------+---------+ |
| | tolower() | Yes | |
| +--------------------------------+---------+ |
| | toupper() | Yes | |
| +--------------------------------+---------+ |
| | tzname | Yes | |
| +--------------------------------+---------+ |
| | tzset() | Yes | |
| +--------------------------------+---------+ |
| | va_arg() | Yes | |
| +--------------------------------+---------+ |
| | va_copy() | Yes | |
| +--------------------------------+---------+ |
| | va_end() | Yes | |
| +--------------------------------+---------+ |
| | va_start() | Yes | |
| +--------------------------------+---------+ |
| | vsnprintf() | Yes | |
| +--------------------------------+---------+ |
| | vsprintf() | Yes | |
| +--------------------------------+---------+ |
| | vsscanf() | Yes | |
| +--------------------------------+---------+ |
| |
| POSIX_DEVICE_IO |
| --------------- |
| |
| Device Input and Output: |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | :c:func:`FD_CLR` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`FD_ISSET` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`FD_SET` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`FD_ZERO` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`clearerr` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`close` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`fclose` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`fdopen` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`feof` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`ferror` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`flush` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`fgetc` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`fgets` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`fileno` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`fopen` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`fprintf` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`fputc` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`fputs` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`fread` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`freopen` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`fscanf` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`fwrite` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`getc` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`getchar` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`open` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`perror` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`poll` | Yes | |
| +--------------------------------+---------+ |
| | posix_close() | No | |
| +--------------------------------+---------+ |
| | :c:func:`ppoll` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`printf` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`pread` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`pselect` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`putc` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`putchar` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`puts` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`pwrite` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`read` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`scanf` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`select` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`setbuf` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`setvbuf` | Yes | |
| +--------------------------------+---------+ |
| | stderr | Yes | |
| +--------------------------------+---------+ |
| | stdin | Yes | |
| +--------------------------------+---------+ |
| | stdout | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`ungetc` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`vfprintf` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`vfscanf` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`vprintf` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`vscanf` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`write` | Yes | |
| +--------------------------------+---------+ |
| |
| |
| POSIX_FILE_LOCKING |
| ------------------ |
| |
| Thread-Safe Stdio Locking: |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | :c:func:`flockfile` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`ftrylockfile` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`funlockfile` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`getc_unlocked` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`getchar_unlocked` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`putc_unlocked` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`putchar_unlocked` | Yes | |
| +--------------------------------+---------+ |
| |
| POSIX_SINGLE_PROCESS |
| -------------------- |
| |
| Single Process: |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | confstr() | Yes | |
| +--------------------------------+---------+ |
| | environ | Yes | |
| +--------------------------------+---------+ |
| | errno | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`getenv` | Yes | |
| +--------------------------------+---------+ |
| | secure_getenv() | No | |
| +--------------------------------+---------+ |
| | :c:func:`setenv` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`sysconf` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`uname` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`unsetenv` | Yes | |
| +--------------------------------+---------+ |
| |
| POSIX_THREADS_BASE |
| ------------------ |
| |
| Base Threads: |
| |
| +-----------------------------------------+---------+ |
| | API | Support | |
| +=========================================+=========+ |
| | :c:func:`pthread_atfork` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_attr_destroy` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_attr_getdetachstate` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_attr_getschedparam` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_attr_init` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_attr_setdetachstate` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_attr_setschedparam` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_cancel` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_cleanup_pop` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_cleanup_push` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_cond_broadcast` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_cond_clockwait` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_cond_destroy` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_cond_init` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_cond_signal` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_cond_timedwait` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_cond_wait` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_condattr_destroy` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_condattr_init` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_create` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_detach` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_equal` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_exit` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_getspecific` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_join` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_key_create` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_key_delete` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_kill` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_mutex_clocklock` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_mutex_destroy` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_mutex_init` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_mutex_lock` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_mutex_timedlock` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_mutex_trylock` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_mutex_unlock` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_mutexattr_destroy` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_mutexattr_init` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_once` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_self` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_setcancelstate` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_setcanceltype` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_setspecific` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_sigmask` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_testcancel` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`sched_yield` | Yes | |
| +-----------------------------------------+---------+ |
| |
| POSIX_THREADS_EXT |
| ----------------- |
| |
| Extended Threads: |
| |
| +--------------------------------------+---------+ |
| | API | Support | |
| +======================================+=========+ |
| | :c:func:`pthread_attr_getguardsize` | Yes | |
| +--------------------------------------+---------+ |
| | :c:func:`pthread_attr_setguardsize` | Yes | |
| +--------------------------------------+---------+ |
| | :c:func:`pthread_mutexattr_gettype` | Yes | |
| +--------------------------------------+---------+ |
| | :c:func:`pthread_mutexattr_settype` | Yes | |
| +--------------------------------------+---------+ |
| |
| POSIX_C_LANG_MATH |
| ----------------- |
| |
| Depends on the enabled ``libm`` implementation [#fn11]_. |
| |
| Maths Library: |
| |
| +--------------------------------+ |
| | API | |
| +================================+ |
| | CMPLX() | |
| +--------------------------------+ |
| | CMPLXF() | |
| +--------------------------------+ |
| | CMPLXL() | |
| +--------------------------------+ |
| | acos() | |
| +--------------------------------+ |
| | acosf() | |
| +--------------------------------+ |
| | acosh() | |
| +--------------------------------+ |
| | acoshf() | |
| +--------------------------------+ |
| | acoshl() | |
| +--------------------------------+ |
| | acosl() | |
| +--------------------------------+ |
| | asin() | |
| +--------------------------------+ |
| | asinf() | |
| +--------------------------------+ |
| | asinh() | |
| +--------------------------------+ |
| | asinhf() | |
| +--------------------------------+ |
| | asinhl() | |
| +--------------------------------+ |
| | asinl() | |
| +--------------------------------+ |
| | atan() | |
| +--------------------------------+ |
| | atan2() | |
| +--------------------------------+ |
| | atan2f() | |
| +--------------------------------+ |
| | atan2l() | |
| +--------------------------------+ |
| | atanf() | |
| +--------------------------------+ |
| | atanh() | |
| +--------------------------------+ |
| | atanhf() | |
| +--------------------------------+ |
| | atanhl() | |
| +--------------------------------+ |
| | atanl() | |
| +--------------------------------+ |
| | cabs() | |
| +--------------------------------+ |
| | cabsf() | |
| +--------------------------------+ |
| | cabsl() | |
| +--------------------------------+ |
| | cacos() | |
| +--------------------------------+ |
| | cacosf() | |
| +--------------------------------+ |
| | cacosh() | |
| +--------------------------------+ |
| | cacoshf() | |
| +--------------------------------+ |
| | cacoshl() | |
| +--------------------------------+ |
| | cacosl() | |
| +--------------------------------+ |
| | carg() | |
| +--------------------------------+ |
| | cargf() | |
| +--------------------------------+ |
| | cargl() | |
| +--------------------------------+ |
| | casin() | |
| +--------------------------------+ |
| | casinf() | |
| +--------------------------------+ |
| | casinh() | |
| +--------------------------------+ |
| | casinhf() | |
| +--------------------------------+ |
| | casinhl() | |
| +--------------------------------+ |
| | casinl() | |
| +--------------------------------+ |
| | catan() | |
| +--------------------------------+ |
| | catanf() | |
| +--------------------------------+ |
| | catanh() | |
| +--------------------------------+ |
| | catanhf() | |
| +--------------------------------+ |
| | catanhl() | |
| +--------------------------------+ |
| | catanl() | |
| +--------------------------------+ |
| | cbrt() | |
| +--------------------------------+ |
| | cbrtf() | |
| +--------------------------------+ |
| | cbrtl() | |
| +--------------------------------+ |
| | ccos() | |
| +--------------------------------+ |
| | ccosf() | |
| +--------------------------------+ |
| | ccosh() | |
| +--------------------------------+ |
| | ccoshf() | |
| +--------------------------------+ |
| | ccoshl() | |
| +--------------------------------+ |
| | ccosl() | |
| +--------------------------------+ |
| | ceil() | |
| +--------------------------------+ |
| | ceilf() | |
| +--------------------------------+ |
| | ceill() | |
| +--------------------------------+ |
| | cexp() | |
| +--------------------------------+ |
| | cexpf() | |
| +--------------------------------+ |
| | cexpl() | |
| +--------------------------------+ |
| | cimag() | |
| +--------------------------------+ |
| | cimagf() | |
| +--------------------------------+ |
| | cimagl() | |
| +--------------------------------+ |
| | clog() | |
| +--------------------------------+ |
| | clogf() | |
| +--------------------------------+ |
| | clogl() | |
| +--------------------------------+ |
| | conj() | |
| +--------------------------------+ |
| | conjf() | |
| +--------------------------------+ |
| | conjl() | |
| +--------------------------------+ |
| | copysign() | |
| +--------------------------------+ |
| | copysignf() | |
| +--------------------------------+ |
| | copysignl() | |
| +--------------------------------+ |
| | cos() | |
| +--------------------------------+ |
| | cosf() | |
| +--------------------------------+ |
| | cosh() | |
| +--------------------------------+ |
| | coshf() | |
| +--------------------------------+ |
| | coshl() | |
| +--------------------------------+ |
| | cosl() | |
| +--------------------------------+ |
| | cpow() | |
| +--------------------------------+ |
| | cpowf() | |
| +--------------------------------+ |
| | cpowl() | |
| +--------------------------------+ |
| | cproj() | |
| +--------------------------------+ |
| | cprojf() | |
| +--------------------------------+ |
| | cprojl() | |
| +--------------------------------+ |
| | creal() | |
| +--------------------------------+ |
| | crealf() | |
| +--------------------------------+ |
| | creall() | |
| +--------------------------------+ |
| | csin() | |
| +--------------------------------+ |
| | csinf() | |
| +--------------------------------+ |
| | csinh() | |
| +--------------------------------+ |
| | csinhf() | |
| +--------------------------------+ |
| | csinhl() | |
| +--------------------------------+ |
| | csinl() | |
| +--------------------------------+ |
| | csqrt() | |
| +--------------------------------+ |
| | csqrtf() | |
| +--------------------------------+ |
| | csqrtl() | |
| +--------------------------------+ |
| | ctan() | |
| +--------------------------------+ |
| | ctanf() | |
| +--------------------------------+ |
| | ctanh() | |
| +--------------------------------+ |
| | ctanhf() | |
| +--------------------------------+ |
| | ctanhl() | |
| +--------------------------------+ |
| | ctanl() | |
| +--------------------------------+ |
| | erf() | |
| +--------------------------------+ |
| | erfc() | |
| +--------------------------------+ |
| | erfcf() | |
| +--------------------------------+ |
| | erfcl() | |
| +--------------------------------+ |
| | erff() | |
| +--------------------------------+ |
| | erfl() | |
| +--------------------------------+ |
| | exp() | |
| +--------------------------------+ |
| | exp2() | |
| +--------------------------------+ |
| | exp2f() | |
| +--------------------------------+ |
| | exp2l() | |
| +--------------------------------+ |
| | expf() | |
| +--------------------------------+ |
| | expl() | |
| +--------------------------------+ |
| | expm1() | |
| +--------------------------------+ |
| | expm1f() | |
| +--------------------------------+ |
| | expm1l() | |
| +--------------------------------+ |
| | fabs() | |
| +--------------------------------+ |
| | fabsf() | |
| +--------------------------------+ |
| | fabsl() | |
| +--------------------------------+ |
| | fdim() | |
| +--------------------------------+ |
| | fdimf() | |
| +--------------------------------+ |
| | fdiml() | |
| +--------------------------------+ |
| | floor() | |
| +--------------------------------+ |
| | floorf() | |
| +--------------------------------+ |
| | floorl() | |
| +--------------------------------+ |
| | fma() | |
| +--------------------------------+ |
| | fmaf() | |
| +--------------------------------+ |
| | fmal() | |
| +--------------------------------+ |
| | fmax() | |
| +--------------------------------+ |
| | fmaxf() | |
| +--------------------------------+ |
| | fmaxl() | |
| +--------------------------------+ |
| | fmin() | |
| +--------------------------------+ |
| | fminf() | |
| +--------------------------------+ |
| | fminl() | |
| +--------------------------------+ |
| | fmod() | |
| +--------------------------------+ |
| | fmodf() | |
| +--------------------------------+ |
| | fmodl() | |
| +--------------------------------+ |
| | fpclassify() | |
| +--------------------------------+ |
| | frexp() | |
| +--------------------------------+ |
| | frexpf() | |
| +--------------------------------+ |
| | frexpl() | |
| +--------------------------------+ |
| | hypot() | |
| +--------------------------------+ |
| | hypotf() | |
| +--------------------------------+ |
| | hypotl() | |
| +--------------------------------+ |
| | ilogb() | |
| +--------------------------------+ |
| | ilogbf() | |
| +--------------------------------+ |
| | ilogbl() | |
| +--------------------------------+ |
| | isfinite() | |
| +--------------------------------+ |
| | isgreater() | |
| +--------------------------------+ |
| | isgreaterequal() | |
| +--------------------------------+ |
| | isinf() | |
| +--------------------------------+ |
| | isless() | |
| +--------------------------------+ |
| | islessequal() | |
| +--------------------------------+ |
| | islessgreater() | |
| +--------------------------------+ |
| | isnan() | |
| +--------------------------------+ |
| | isnormal() | |
| +--------------------------------+ |
| | isunordered() | |
| +--------------------------------+ |
| | ldexp() | |
| +--------------------------------+ |
| | ldexpf() | |
| +--------------------------------+ |
| | ldexpl() | |
| +--------------------------------+ |
| | lgamma() | |
| +--------------------------------+ |
| | lgammaf() | |
| +--------------------------------+ |
| | lgammal() | |
| +--------------------------------+ |
| | llrint() | |
| +--------------------------------+ |
| | llrintf() | |
| +--------------------------------+ |
| | llrintl() | |
| +--------------------------------+ |
| | llround() | |
| +--------------------------------+ |
| | llroundf() | |
| +--------------------------------+ |
| | llroundl() | |
| +--------------------------------+ |
| | log() | |
| +--------------------------------+ |
| | log10() | |
| +--------------------------------+ |
| | log10f() | |
| +--------------------------------+ |
| | log10l() | |
| +--------------------------------+ |
| | log1p() | |
| +--------------------------------+ |
| | log1pf() | |
| +--------------------------------+ |
| | log1pl() | |
| +--------------------------------+ |
| | log2() | |
| +--------------------------------+ |
| | log2f() | |
| +--------------------------------+ |
| | log2l() | |
| +--------------------------------+ |
| | logb() | |
| +--------------------------------+ |
| | logbf() | |
| +--------------------------------+ |
| | logbl() | |
| +--------------------------------+ |
| | logf() | |
| +--------------------------------+ |
| | logl() | |
| +--------------------------------+ |
| | lrint() | |
| +--------------------------------+ |
| | lrintf() | |
| +--------------------------------+ |
| | lrintl() | |
| +--------------------------------+ |
| | lround() | |
| +--------------------------------+ |
| | lroundf() | |
| +--------------------------------+ |
| | lroundl() | |
| +--------------------------------+ |
| | modf() | |
| +--------------------------------+ |
| | modff() | |
| +--------------------------------+ |
| | modfl() | |
| +--------------------------------+ |
| | nan() | |
| +--------------------------------+ |
| | nanf() | |
| +--------------------------------+ |
| | nanl() | |
| +--------------------------------+ |
| | nearbyint() | |
| +--------------------------------+ |
| | nearbyintf() | |
| +--------------------------------+ |
| | nearbyintl() | |
| +--------------------------------+ |
| | nextafter() | |
| +--------------------------------+ |
| | nextafterf() | |
| +--------------------------------+ |
| | nextafterl() | |
| +--------------------------------+ |
| | nexttoward() | |
| +--------------------------------+ |
| | nexttowardf() | |
| +--------------------------------+ |
| | nexttowardl() | |
| +--------------------------------+ |
| | pow() | |
| +--------------------------------+ |
| | powf() | |
| +--------------------------------+ |
| | powl() | |
| +--------------------------------+ |
| | remainder() | |
| +--------------------------------+ |
| | remainderf() | |
| +--------------------------------+ |
| | remainderl() | |
| +--------------------------------+ |
| | remquo() | |
| +--------------------------------+ |
| | remquof() | |
| +--------------------------------+ |
| | remquol() | |
| +--------------------------------+ |
| | rint() | |
| +--------------------------------+ |
| | rintf() | |
| +--------------------------------+ |
| | rintl() | |
| +--------------------------------+ |
| | round() | |
| +--------------------------------+ |
| | roundf() | |
| +--------------------------------+ |
| | roundl() | |
| +--------------------------------+ |
| | scalbln() | |
| +--------------------------------+ |
| | scalblnf() | |
| +--------------------------------+ |
| | scalblnl() | |
| +--------------------------------+ |
| | scalbn() | |
| +--------------------------------+ |
| | scalbnf() | |
| +--------------------------------+ |
| | scalbnl() | |
| +--------------------------------+ |
| | signbit() | |
| +--------------------------------+ |
| | sin() | |
| +--------------------------------+ |
| | sinf() | |
| +--------------------------------+ |
| | sinh() | |
| +--------------------------------+ |
| | sinhf() | |
| +--------------------------------+ |
| | sinhl() | |
| +--------------------------------+ |
| | sinl() | |
| +--------------------------------+ |
| | sqrt() | |
| +--------------------------------+ |
| | sqrtf() | |
| +--------------------------------+ |
| | sqrtl() | |
| +--------------------------------+ |
| | tan() | |
| +--------------------------------+ |
| | tanf() | |
| +--------------------------------+ |
| | tanh() | |
| +--------------------------------+ |
| | tanhf() | |
| +--------------------------------+ |
| | tanhl() | |
| +--------------------------------+ |
| | tanl() | |
| +--------------------------------+ |
| | tgamma() | |
| +--------------------------------+ |
| | tgammaf() | |
| +--------------------------------+ |
| | tgammal() | |
| +--------------------------------+ |
| | trunc() | |
| +--------------------------------+ |
| | truncf() | |
| +--------------------------------+ |
| | truncl() | |
| +--------------------------------+ |
| |
| .. [#fn11] NuttX supports different ``libm`` implementations with different |
| sets of supported functions. ``libm`` support in NuttX is controlled |
| by Kconfig choice option. |
| |
| POSIX_FD_MGMT |
| ------------- |
| |
| File Descriptor Management: |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | :c:func:`dup` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`dup2` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`dup3` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`fcntl` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`fgetpos` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`fseek` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`fseeko` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`fsetpos` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`ftell` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`ftello` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`ftruncate` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`lseek` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`rewind` | Yes | |
| +--------------------------------+---------+ |
| |
| POSIX_FILE_SYSTEM |
| ----------------- |
| |
| File System: |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | :c:func:`access` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`chdir` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`closedir` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`creat` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`fchdir` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`fpathconf` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`fstat` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`fstatvfs` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`futimens` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`getcwd` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`link` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`mkdir` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`mkostemp` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`mkstemp` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`opendir` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`pathconf` | Yes | |
| +--------------------------------+---------+ |
| | posix_getdents() | No | |
| +--------------------------------+---------+ |
| | :c:func:`readdir` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`remove` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`rename` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`rewinddir` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`rmdir` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`stat` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`statvfs` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`tmpfile` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`tmpnam` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`truncate` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`unlink` | Yes | |
| +--------------------------------+---------+ |
| |
| POSIX_MULTI_PROCESS |
| ------------------- |
| |
| Multiple Processes: |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | :c:func:`_Exit` | Yes | |
| +--------------------------------+---------+ |
| | _Fork() | No | |
| +--------------------------------+---------+ |
| | :c:func:`_exit` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`assert` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`at_quick_exit` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`atexit` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`clock` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`execl` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`execle` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`execlp` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`execv` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`execve` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`execvp` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`exit` | Yes | |
| +--------------------------------+---------+ |
| | fork() | No | |
| +--------------------------------+---------+ |
| | :c:func:`getpgrp` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`getpgid` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`getpid` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`getppid` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`getrlimit` | Yes | |
| +--------------------------------+---------+ |
| | getsid() | No | |
| +--------------------------------+---------+ |
| | :c:func:`quick_exit` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`setrlimit` | Yes | |
| +--------------------------------+---------+ |
| | setsid() | No | |
| +--------------------------------+---------+ |
| | :c:func:`sleep` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`times` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`wait` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`waitid` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`waitpid` | Yes | |
| +--------------------------------+---------+ |
| |
| POSIX_NETWORKING |
| ---------------- |
| |
| Networking: |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | :c:func:`accept` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`accept4` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`be16toh` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`be32toh` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`be64toh` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`bind` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`connect` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`endhostent` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`endnetent` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`endprotoent` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`endservent` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`freeaddrinfo` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`gai_strerror` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`getaddrinfo` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`gethostent` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`gethostname` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`getnameinfo` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`getnetbyaddr` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`getnetbyname` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`getnetent` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`getpeername` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`getprotobyname` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`getprotobynumber` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`getprotoent` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`getservbyname` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`getservbyport` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`getservent` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`getsockname` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`getsockopt` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`htobe16` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`htobe32` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`htobe64` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`htole16` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`htole32` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`htole64` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`htonl` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`htons` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`if_freenameindex` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`if_indextoname` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`if_nameindex` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`if_nametoindex` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`inet_addr` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`inet_ntoa` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`inet_ntop` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`inet_pton` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`le16toh` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`le32toh` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`le64toh` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`listen` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`ntohl` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`ntohs` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`recv` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`recvfrom` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`recvmsg` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`send` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`sendmsg` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`sendto` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`sethostent` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`setnetent` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`setprotoent` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`setservent` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`setsockopt` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`shutdown` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`socket` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`sockatmark` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`socketpair` | Yes | |
| +--------------------------------+---------+ |
| |
| POSIX_PIPE |
| ---------- |
| |
| Pipe: |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | :c:func:`pipe` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`pipe2` | Yes | |
| +--------------------------------+---------+ |
| |
| POSIX_SIGNAL_JUMP |
| ----------------- |
| |
| Signal Jump Functions: |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | siglongjmp() | Yes | |
| +--------------------------------+---------+ |
| | sigsetjmp() | Yes | |
| +--------------------------------+---------+ |
| |
| POSIX_C_LANG_WIDE_CHAR |
| ---------------------- |
| |
| Wide-Character ISO C Library: |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | btowc() | Yes | |
| +--------------------------------+---------+ |
| | iswalnum() | Yes | |
| +--------------------------------+---------+ |
| | iswalpha() | Yes | |
| +--------------------------------+---------+ |
| | iswblank() | Yes | |
| +--------------------------------+---------+ |
| | iswcntrl() | Yes | |
| +--------------------------------+---------+ |
| | iswctype() | Yes | |
| +--------------------------------+---------+ |
| | iswdigit() | Yes | |
| +--------------------------------+---------+ |
| | iswgraph() | Yes | |
| +--------------------------------+---------+ |
| | iswlower() | Yes | |
| +--------------------------------+---------+ |
| | iswprint() | Yes | |
| +--------------------------------+---------+ |
| | iswpunct() | Yes | |
| +--------------------------------+---------+ |
| | iswspace() | Yes | |
| +--------------------------------+---------+ |
| | iswupper() | Yes | |
| +--------------------------------+---------+ |
| | iswxdigit() | Yes | |
| +--------------------------------+---------+ |
| | mblen() | Yes | |
| +--------------------------------+---------+ |
| | mbrlen() | Yes | |
| +--------------------------------+---------+ |
| | mbrtowc() | Yes | |
| +--------------------------------+---------+ |
| | mbsinit() | Yes | |
| +--------------------------------+---------+ |
| | mbsrtowcs() | Yes | |
| +--------------------------------+---------+ |
| | mbstowcs() | Yes | |
| +--------------------------------+---------+ |
| | mbtowc() | Yes | |
| +--------------------------------+---------+ |
| | swprintf() | Yes | |
| +--------------------------------+---------+ |
| | swscanf() | Yes | |
| +--------------------------------+---------+ |
| | towctrans() | Yes | |
| +--------------------------------+---------+ |
| | towlower() | Yes | |
| +--------------------------------+---------+ |
| | towupper() | Yes | |
| +--------------------------------+---------+ |
| | vswprintf() | Yes | |
| +--------------------------------+---------+ |
| | vswscanf() | Yes | |
| +--------------------------------+---------+ |
| | wcrtomb() | Yes | |
| +--------------------------------+---------+ |
| | wcscat() | Yes | |
| +--------------------------------+---------+ |
| | wcschr() | Yes | |
| +--------------------------------+---------+ |
| | wcscmp() | Yes | |
| +--------------------------------+---------+ |
| | wcscoll() | Yes | |
| +--------------------------------+---------+ |
| | wcscpy() | Yes | |
| +--------------------------------+---------+ |
| | wcscspn() | Yes | |
| +--------------------------------+---------+ |
| | wcsftime() | Yes | |
| +--------------------------------+---------+ |
| | wcslen() | Yes | |
| +--------------------------------+---------+ |
| | wcsncat() | Yes | |
| +--------------------------------+---------+ |
| | wcsncmp() | Yes | |
| +--------------------------------+---------+ |
| | wcsncpy() | Yes | |
| +--------------------------------+---------+ |
| | wcspbrk() | Yes | |
| +--------------------------------+---------+ |
| | wcsrchr() | Yes | |
| +--------------------------------+---------+ |
| | wcsrtombs() | Yes | |
| +--------------------------------+---------+ |
| | wcsspn() | Yes | |
| +--------------------------------+---------+ |
| | wcsstr() | Yes | |
| +--------------------------------+---------+ |
| | wcstod() | Yes | |
| +--------------------------------+---------+ |
| | wcstof() | Yes | |
| +--------------------------------+---------+ |
| | wcstoimax() | Yes | |
| +--------------------------------+---------+ |
| | wcstok() | Yes | |
| +--------------------------------+---------+ |
| | wcstol() | Yes | |
| +--------------------------------+---------+ |
| | wcstold() | Yes | |
| +--------------------------------+---------+ |
| | wcstoll() | Yes | |
| +--------------------------------+---------+ |
| | wcstombs() | Yes | |
| +--------------------------------+---------+ |
| | wcstoul() | Yes | |
| +--------------------------------+---------+ |
| | wcstoull() | Yes | |
| +--------------------------------+---------+ |
| | wcstoumax() | Yes | |
| +--------------------------------+---------+ |
| | wcsxfrm() | Yes | |
| +--------------------------------+---------+ |
| | wctob() | Yes | |
| +--------------------------------+---------+ |
| | wctomb() | Yes | |
| +--------------------------------+---------+ |
| | wctrans() | Yes | |
| +--------------------------------+---------+ |
| | wctype() | Yes | |
| +--------------------------------+---------+ |
| | wmemchr() | Yes | |
| +--------------------------------+---------+ |
| | wmemcmp() | Yes | |
| +--------------------------------+---------+ |
| | wmemcpy() | Yes | |
| +--------------------------------+---------+ |
| | wmemmove() | Yes | |
| +--------------------------------+---------+ |
| | wmemset() | Yes | |
| +--------------------------------+---------+ |
| |
| POSIX_DEVICE_SPECIFIC |
| --------------------- |
| |
| General Terminal: |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | :c:func:`cfgetispeed` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`cfgetospeed` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`cfsetispeed` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`cfsetospeed` | Yes | |
| +--------------------------------+---------+ |
| | ctermid() | No | |
| +--------------------------------+---------+ |
| | :c:func:`isatty` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`tcdrain` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`tcflow` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`tcflush` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`tcgetattr` | Yes | |
| +--------------------------------+---------+ |
| | tcgetwinsize() | No | |
| +--------------------------------+---------+ |
| | :c:func:`tcsendbreak` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`tcsetattr` | Yes | |
| +--------------------------------+---------+ |
| | tcsetwinsize() | No | |
| +--------------------------------+---------+ |
| | :c:func:`ttyname` | Yes | |
| +--------------------------------+---------+ |
| |
| POSIX_FIFO |
| ---------- |
| |
| FIFO: |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | :c:func:`mkfifo` | Yes | |
| +--------------------------------+---------+ |
| |
| POSIX_FILE_ATTRIBUTES |
| --------------------- |
| |
| File Attributes: |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | :c:func:`chmod` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`chown` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`fchmod` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`fchown` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`umask` | Yes | |
| +--------------------------------+---------+ |
| |
| POSIX_FILE_SYSTEM_EXT |
| --------------------- |
| |
| File System Extensions: |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | :c:func:`alphasort` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`dirfd` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`getdelim` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`getline` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`mkdtemp` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`scandir` | Yes | |
| +--------------------------------+---------+ |
| |
| POSIX_JOB_CONTROL |
| ----------------- |
| |
| Job Control: |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | setpgid() | No | |
| +--------------------------------+---------+ |
| | tcgetpgrp() | No | |
| +--------------------------------+---------+ |
| | tcsetpgrp() | No | |
| +--------------------------------+---------+ |
| | :c:func:`tcgetsid` | Yes | |
| +--------------------------------+---------+ |
| |
| POSIX_REGEXP |
| ------------ |
| |
| Regular Expressions: |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | :c:func:`regcomp` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`regerror` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`regexec` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`regfree` | Yes | |
| +--------------------------------+---------+ |
| |
| POSIX_SHELL_FUNC |
| ---------------- |
| |
| Shell and Utilities: |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | :c:func:`pclose` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`popen` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`system` | Yes | |
| +--------------------------------+---------+ |
| | wordexp() | No | |
| +--------------------------------+---------+ |
| | wordfree() | No | |
| +--------------------------------+---------+ |
| |
| POSIX_STRING_MATCHING |
| --------------------- |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | :c:func:`fnmatch` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`getopt` | Yes | |
| +--------------------------------+---------+ |
| | optarg | Yes | |
| +--------------------------------+---------+ |
| | optind | Yes | |
| +--------------------------------+---------+ |
| | opterr | Yes | |
| +--------------------------------+---------+ |
| | optopt | Yes | |
| +--------------------------------+---------+ |
| |
| POSIX_SYMBOLIC_LINKS |
| -------------------- |
| |
| Symbolic Links: |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | :c:func:`lchown` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`lstat` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`readlink` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`realpath` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`symlink` | Yes | |
| +--------------------------------+---------+ |
| |
| POSIX_SYSTEM_DATABASE |
| --------------------- |
| |
| System Database: |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | :c:func:`getgrgid` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`getgrnam` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`getpwnam` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`getpwuid` | Yes | |
| +--------------------------------+---------+ |
| |
| POSIX_USER_GROUPS |
| ----------------- |
| |
| User and Group: |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | :c:func:`getegid` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`geteuid` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`getgid` | Yes | |
| +--------------------------------+---------+ |
| | getgroups() | No | |
| +--------------------------------+---------+ |
| | getlogin() | No | |
| +--------------------------------+---------+ |
| | :c:func:`getuid` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`setegid` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`seteuid` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`setgid` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`setuid` | Yes | |
| +--------------------------------+---------+ |
| |
| POSIX_WIDE_CHAR_DEVICE_IO |
| ------------------------- |
| |
| Device Input and Output: |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | :c:func:`fgetwc` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`fgetws` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`fputwc` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`fputws` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`fwide` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`fwprintf` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`fwscanf` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`getwc` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`getwchar` | Yes | |
| +--------------------------------+---------+ |
| | open_wmemstream() | No | |
| +--------------------------------+---------+ |
| | :c:func:`putwc` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`putwchar` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`ungetwc` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`vfwprintf` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`vfwscanf` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`vwprintf` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`vwscanf` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`wprintf` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`wscanf` | Yes | |
| +--------------------------------+---------+ |
| |
| XSI_C_LANG_SUPPORT |
| ------------------ |
| |
| XSI General C Library: |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | a64l() | No | |
| +--------------------------------+---------+ |
| | daylight | No | |
| +--------------------------------+---------+ |
| | :c:func:`drand48` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`erand48` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`ffs` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`ffsl` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`ffsll` | Yes | |
| +--------------------------------+---------+ |
| | getdate() | No | |
| +--------------------------------+---------+ |
| | :c:func:`hcreate` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`hdestroy` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`hsearch` | Yes | |
| +--------------------------------+---------+ |
| | initstate() | No | |
| +--------------------------------+---------+ |
| | insque() | No | |
| +--------------------------------+---------+ |
| | :c:func:`jrand48` | Yes | |
| +--------------------------------+---------+ |
| | l64a() | No | |
| +--------------------------------+---------+ |
| | :c:func:`lcong48` | Yes | |
| +--------------------------------+---------+ |
| | lfind() | No | |
| +--------------------------------+---------+ |
| | :c:func:`lrand48` | Yes | |
| +--------------------------------+---------+ |
| | lsearch() | No | |
| +--------------------------------+---------+ |
| | :c:func:`memccpy` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`mrand48` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`nrand48` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`random` | Yes | |
| +--------------------------------+---------+ |
| | remque() | No | |
| +--------------------------------+---------+ |
| | :c:func:`seed48` | Yes | |
| +--------------------------------+---------+ |
| | setstate() | No | |
| +--------------------------------+---------+ |
| | signgam | No | |
| +--------------------------------+---------+ |
| | :c:func:`srand48` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`srandom` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`strptime` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`swab` | Yes | |
| +--------------------------------+---------+ |
| | tdelete() | No | |
| +--------------------------------+---------+ |
| | tfind() | No | |
| +--------------------------------+---------+ |
| | timezone | No | |
| +--------------------------------+---------+ |
| | tsearch() | No | |
| +--------------------------------+---------+ |
| | twalk() | No | |
| +--------------------------------+---------+ |
| |
| XSI_DBM |
| ------- |
| |
| XSI Database Management: |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | dbm_clearerr() | No | |
| +--------------------------------+---------+ |
| | dbm_close() | No | |
| +--------------------------------+---------+ |
| | dbm_delete() | No | |
| +--------------------------------+---------+ |
| | dbm_error() | No | |
| +--------------------------------+---------+ |
| | dbm_fetch() | No | |
| +--------------------------------+---------+ |
| | dbm_firstkey() | No | |
| +--------------------------------+---------+ |
| | dbm_nextkey() | No | |
| +--------------------------------+---------+ |
| | dbm_open() | No | |
| +--------------------------------+---------+ |
| | dbm_store() | No | |
| +--------------------------------+---------+ |
| |
| XSI_DEVICE_IO |
| ------------- |
| |
| XSI Device Input and Output: |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | :c:func:`fmtmsg` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`readv` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`writev` | Yes | |
| +--------------------------------+---------+ |
| |
| XSI_DEVICE_SPECIFIC |
| ------------------- |
| |
| XSI General Terminal: |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | :c:func:`grantpt` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`posix_openpt` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`ptsname` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`unlockpt` | Yes | |
| +--------------------------------+---------+ |
| |
| XSI_DYNAMIC_LINKING |
| ------------------- |
| |
| Dynamic Linking: |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | :c:func:`dladdr` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`dlclose` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`dlerror` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`dlopen` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`dlsym` | Yes | |
| +--------------------------------+---------+ |
| |
| XSI_FD_MGMT |
| ----------- |
| |
| XSI File Descriptor Management: |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | :c:func:`truncate` | Yes | |
| +--------------------------------+---------+ |
| |
| XSI_FILE_SYSTEM |
| --------------- |
| |
| XSI File System: |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | :c:func:`basename` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`dirname` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`lockf` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`mknod` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`nftw` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`seekdir` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`sync` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`telldir` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`utimes` | Yes | |
| +--------------------------------+---------+ |
| |
| XSI_I18N |
| -------- |
| |
| XSI Internationalization: |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | :c:func:`catclose` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`catgets` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`catopen` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`nl_langinfo` | Yes | |
| +--------------------------------+---------+ |
| |
| XSI_IPC |
| ------- |
| |
| XSI Interprocess Communication: |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | :c:func:`ftok` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`msgctl` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`msgget` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`msgrcv` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`msgsnd` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`semctl` | No | |
| +--------------------------------+---------+ |
| | :c:func:`semget` | No | |
| +--------------------------------+---------+ |
| | :c:func:`semop` | No | |
| +--------------------------------+---------+ |
| | :c:func:`shmat` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`shmctl` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`shmdt` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`shmget` | Yes | |
| +--------------------------------+---------+ |
| |
| XSI_JOB_CONTROL |
| --------------- |
| |
| XSI Job Control: |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | :c:func:`tcgetsid` | Yes | |
| +--------------------------------+---------+ |
| |
| XSI_JUMP |
| -------- |
| |
| XSI Jump Functions: |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | :c:func:`_longjmp` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`_setjmp` | Yes | |
| +--------------------------------+---------+ |
| |
| XSI_MATH |
| -------- |
| |
| Depends on the enabled ``libm`` implementation [#fn12]_. |
| |
| XSI Maths Library: |
| |
| +--------------------------------+ |
| | API | |
| +================================+ |
| | j0() | |
| +--------------------------------+ |
| | j1() | |
| +--------------------------------+ |
| | jn() | |
| +--------------------------------+ |
| | scalb() | |
| +--------------------------------+ |
| | y0() | |
| +--------------------------------+ |
| | y1() | |
| +--------------------------------+ |
| | yn() | |
| +--------------------------------+ |
| |
| .. [#fn12] NuttX supports different ``libm`` implementations with different |
| sets of supported functions. ``libm`` support in NuttX is controlled |
| by Kconfig choice option. |
| |
| XSI_MULTI_PROCESS |
| ----------------- |
| |
| XSI Multiple Process: |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | :c:func:`getpgid` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`getpriority` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`getrlimit` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`getrusage` | Yes | |
| +--------------------------------+---------+ |
| | getsid() | No | |
| +--------------------------------+---------+ |
| | :c:func:`nice` | Yes | |
| +--------------------------------+---------+ |
| | setpgrp() | No | |
| +--------------------------------+---------+ |
| | :c:func:`setpriority` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`setrlimit` | Yes | |
| +--------------------------------+---------+ |
| | ulimit() | No | |
| +--------------------------------+---------+ |
| | :c:func:`usleep` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`vfork` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`waitid` | Yes | |
| +--------------------------------+---------+ |
| |
| XSI_SIGNALS |
| ----------- |
| |
| XSI Signal: |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | bsd_signal() | No | |
| +--------------------------------+---------+ |
| | :c:func:`killpg` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`sigaltstack` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`sighold` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`sigignore` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`siginterrupt` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`sigpause` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`sigrelse` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`sigset` | Yes | |
| +--------------------------------+---------+ |
| | ualarm() | No | |
| +--------------------------------+---------+ |
| |
| XSI_SINGLE_PROCESS |
| ------------------ |
| |
| XSI Single Process: |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | gethostid() | No | |
| +--------------------------------+---------+ |
| | :c:func:`gettimeofday` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`putenv` | Yes | |
| +--------------------------------+---------+ |
| |
| XSI_SYSTEM_DATABASE |
| ------------------- |
| |
| XSI System Database: |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | :c:func:`endpwent` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`getpwent` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`setpwent` | Yes | |
| +--------------------------------+---------+ |
| |
| XSI_SYSTEM_LOGGING |
| ------------------ |
| |
| XSI System Logging: |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | :c:func:`closelog` | No | |
| +--------------------------------+---------+ |
| | :c:func:`openlog` | No | |
| +--------------------------------+---------+ |
| | :c:func:`setlogmask` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`syslog` | Yes | |
| +--------------------------------+---------+ |
| |
| XSI_THREADS_EXT |
| --------------- |
| |
| XSI Threads Extensions: |
| |
| +----------------------------------+---------+ |
| | API | Support | |
| +==================================+=========+ |
| | :c:func:`pthread_attr_getstack` | Yes | |
| +----------------------------------+---------+ |
| | :c:func:`pthread_attr_setstack` | Yes | |
| +----------------------------------+---------+ |
| | :c:func:`pthread_getconcurrency` | Yes | |
| +----------------------------------+---------+ |
| | :c:func:`pthread_setconcurrency` | Yes | |
| +----------------------------------+---------+ |
| |
| XSI_TIMERS |
| ---------- |
| |
| XSI Timers: |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | :c:func:`getitimer` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`setitimer` | Yes | |
| +--------------------------------+---------+ |
| |
| XSI_USER_GROUPS |
| --------------- |
| |
| XSI User and Group: |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | endgrent() | No | |
| +--------------------------------+---------+ |
| | endutxent() | No | |
| +--------------------------------+---------+ |
| | getgrent() | No | |
| +--------------------------------+---------+ |
| | getutxent() | No | |
| +--------------------------------+---------+ |
| | getutxid() | No | |
| +--------------------------------+---------+ |
| | getutxline() | No | |
| +--------------------------------+---------+ |
| | pututxline() | No | |
| +--------------------------------+---------+ |
| | setgrent() | No | |
| +--------------------------------+---------+ |
| | :c:func:`setregid` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`setreuid` | Yes | |
| +--------------------------------+---------+ |
| | setutxent() | No | |
| +--------------------------------+---------+ |
| |
| |
| XSI_WIDE_CHAR |
| ------------- |
| |
| XSI Wide-Character Library: |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | :c:func:`wcswidth` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`wcwidth` | Yes | |
| +--------------------------------+---------+ |
| |
| POSIX.1 Option Requirements |
| =========================== |
| |
| _POSIX_CLOCK_SELECTION |
| ---------------------- |
| |
| Clock Selection: |
| |
| +-------------------------------------+---------+ |
| | API | Support | |
| +=====================================+=========+ |
| | :c:func:`clock_nanosleep` | Yes | |
| +-------------------------------------+---------+ |
| | :c:func:`pthread_condattr_getclock` | Yes | |
| +-------------------------------------+---------+ |
| | :c:func:`pthread_condattr_setclock` | Yes | |
| +-------------------------------------+---------+ |
| |
| _POSIX_FSYNC |
| ------------ |
| |
| File Synchronization: |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | :c:func:`fsync` [#fn13]_ | Yes | |
| +--------------------------------+---------+ |
| |
| .. [#fn13] Revisit: why ``#undef _POSIX_FSYNC`` in ``unistd.h`` ? |
| |
| _POSIX_IPV6 |
| ----------- |
| |
| No functions under this option. |
| |
| _POSIX_MEMLOCK |
| -------------- |
| |
| +--------------------------------+----------------+ |
| | API | Support | |
| +================================+================+ |
| | :c:func:`mlockall` | Dummy [#fn14]_ | |
| +--------------------------------+----------------+ |
| | :c:func:`munlockall` | Dummy [#fn14]_ | |
| +--------------------------------+----------------+ |
| |
| .. [#fn14] The function returns a success value but doesn't implement |
| the required functionality. |
| |
| _POSIX_MEMLOCK_RANGE |
| -------------------- |
| |
| +--------------------------------+----------------+ |
| | API | Support | |
| +================================+================+ |
| | :c:func:`mlock` | Dummy [#fn15]_ | |
| +--------------------------------+----------------+ |
| | :c:func:`munlock` | Dummy [#fn15]_ | |
| +--------------------------------+----------------+ |
| |
| .. [#fn15] The function returns a success value but doesn't implement |
| the required functionality. |
| |
| _POSIX_MONOTONIC_CLOCK |
| ---------------------- |
| |
| No functions under this option. |
| |
| _POSIX_NO_TRUNC |
| --------------- |
| |
| No functions under this option. |
| |
| _POSIX_REALTIME_SIGNALS |
| ----------------------- |
| |
| Realtime Signals: |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | :c:func:`sigqueue` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`sigtimedwait` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`sigwaitinfo` | Yes | |
| +--------------------------------+---------+ |
| |
| _POSIX_SEMAPHORES |
| ----------------- |
| |
| Semaphores: |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | :c:func:`sem_clockwait` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`sem_close` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`sem_destroy` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`sem_getvalue` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`sem_init` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`sem_open` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`sem_post` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`sem_timedwait` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`sem_trywait` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`sem_unlink` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`sem_wait` | Yes | |
| +--------------------------------+---------+ |
| |
| _POSIX_SHARED_MEMORY_OBJECTS |
| ---------------------------- |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | :c:func:`mmap` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`munmap` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`shm_open` | Yes | |
| +--------------------------------+---------+ |
| | shm_unling() | No | |
| +--------------------------------+---------+ |
| |
| _POSIX_SYNCHRONIZED_IO |
| ---------------------- |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | :c:func:`fdatasync` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`fsync` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`msync` | Yes | |
| +--------------------------------+---------+ |
| |
| _POSIX_THREAD_ATTR_STACKADDR |
| ---------------------------- |
| |
| +---------------------------------------+---------+ |
| | API | Support | |
| +=======================================+=========+ |
| | :c:func:`pthread_attr_getstackaddr` | Yes | |
| +---------------------------------------+---------+ |
| | :c:func:`pthread_attr_setstackaddr` | Yes | |
| +---------------------------------------+---------+ |
| |
| _POSIX_THREAD_ATTR_STACKSIZE |
| ---------------------------- |
| |
| +---------------------------------------+---------+ |
| | API | Support | |
| +=======================================+=========+ |
| | :c:func:`pthread_attr_getstacksize` | Yes | |
| +---------------------------------------+---------+ |
| | :c:func:`pthread_attr_setstacksize` | Yes | |
| +---------------------------------------+---------+ |
| |
| _POSIX_THREAD_CPUTIME |
| --------------------- |
| |
| +-----------------------------------+---------+ |
| | API | Support | |
| +===================================+=========+ |
| | CLOCK_THREAD_CPUTIME_ID | Yes | |
| +-----------------------------------+---------+ |
| | :c:func:`pthread_getcpuclockid` | Yes | |
| +-----------------------------------+---------+ |
| |
| _POSIX_THREAD_PRIO_INHERIT |
| -------------------------- |
| |
| +-----------------------------------------+---------+ |
| | API | Support | |
| +=========================================+=========+ |
| | :c:func:`pthread_mutexattr_getprotocol` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_mutexattr_setprotocol` | Yes | |
| +-----------------------------------------+---------+ |
| |
| _POSIX_THREAD_PRIO_PROTECT |
| -------------------------- |
| |
| +-----------------------------------------------+---------+ |
| | API | Support | |
| +===============================================+=========+ |
| | :c:func:`pthread_mutex_getprioceiling` | Yes | |
| +-----------------------------------------------+---------+ |
| | :c:func:`pthread_mutex_setprioceiling` | Yes | |
| +-----------------------------------------------+---------+ |
| | :c:func:`pthread_mutexattr_getprioceiling` | Yes | |
| +-----------------------------------------------+---------+ |
| | :c:func:`pthread_mutexattr_getprotocol` | Yes | |
| +-----------------------------------------------+---------+ |
| | :c:func:`pthread_mutexattr_setprioceiling` | Yes | |
| +-----------------------------------------------+---------+ |
| | :c:func:`pthread_mutexattr_setprotocol` | Yes | |
| +-----------------------------------------------+---------+ |
| |
| _POSIX_THREAD_PRIORITY_SCHEDULING |
| --------------------------------- |
| |
| +-----------------------------------------+---------+ |
| | API | Support | |
| +=========================================+=========+ |
| | :c:func:`pthread_attr_getinheritsched` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_attr_getschedpolicy` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_attr_getscope` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_attr_setinheritsched` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_attr_setschedpolicy` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_attr_setscope` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_getschedparam` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_setschedparam` | Yes | |
| +-----------------------------------------+---------+ |
| | :c:func:`pthread_setschedprio` | Yes | |
| +-----------------------------------------+---------+ |
| |
| _POSIX_THREAD_SPORADIC_SERVER |
| ----------------------------- |
| |
| No functions under this option. |
| |
| _POSIX_TIMEOUTS |
| --------------- |
| |
| +-------------------------------------------+---------+ |
| | API | Support | |
| +===========================================+=========+ |
| | :c:func:`mq_timedreceive` | Yes | |
| +-------------------------------------------+---------+ |
| | :c:func:`mq_timedsend` | Yes | |
| +-------------------------------------------+---------+ |
| | :c:func:`pthread_mutex_timedlock` | Yes | |
| +-------------------------------------------+---------+ |
| | :c:func:`pthread_rwlock_timedrdlock` | Yes | |
| +-------------------------------------------+---------+ |
| | :c:func:`pthread_rwlock_timedwrlock` | Yes | |
| +-------------------------------------------+---------+ |
| | :c:func:`sem_timedwait` | Yes | |
| +-------------------------------------------+---------+ |
| | posix_trace_timedgetnext_event() [#fn16]_ | No | |
| +-------------------------------------------+---------+ |
| |
| .. [#fn16] ``_POSIX_TRACE*`` are obsolete. |
| |
| _POSIX_TIMERS |
| ------------- |
| |
| Depends on ``!CONFIG_DISABLE_POSIX_TIMERS`` |
| |
| Timers: |
| |
| +---------------------------------+---------+ |
| | API | Support | |
| +=================================+=========+ |
| | :c:func:`clock_getres` | Yes | |
| +---------------------------------+---------+ |
| | :c:func:`clock_gettime` | Yes | |
| +---------------------------------+---------+ |
| | :c:func:`clock_settime` | Yes | |
| +---------------------------------+---------+ |
| | :c:func:`nanosleep` | Yes | |
| +---------------------------------+---------+ |
| | :c:func:`timer_create` | Yes | |
| +---------------------------------+---------+ |
| | :c:func:`timer_delete` | Yes | |
| +---------------------------------+---------+ |
| | :c:func:`timer_getoverrun` | Yes | |
| +---------------------------------+---------+ |
| | :c:func:`timer_gettime` | Yes | |
| +---------------------------------+---------+ |
| | :c:func:`timer_settime` | Yes | |
| +---------------------------------+---------+ |
| |
| _POSIX_MAPPED_FILES |
| ------------------- |
| |
| Memory Mapped Files: |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | :c:func:`mmap` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`munmap` | Yes | |
| +--------------------------------+---------+ |
| |
| _POSIX_MESSAGE_PASSING |
| ---------------------- |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | :c:func:`mq_close` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`mq_getattr` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`mq_notify` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`mq_open` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`mq_receive` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`mq_send` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`mq_setattr` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`mq_unlink` | Yes | |
| +--------------------------------+---------+ |
| |
| _POSIX_ASYNCHRONOUS_IO |
| ---------------------- |
| |
| Depends on ``CONFIG_FS_AIO``. |
| |
| Asynchronous Input and Output Functions: |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | :c:func:`aio_cancel` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`aio_error` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`aio_fsync` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`aio_read` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`aio_return` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`aio_suspend` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`aio_write` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`lio_listio` | Yes | |
| +--------------------------------+---------+ |
| |
| _POSIX_BARRIERS |
| --------------- |
| |
| +--------------------------------------------+---------+ |
| | API | Support | |
| +============================================+=========+ |
| | :c:func:`pthread_barrier_destroy` | Yes | |
| +--------------------------------------------+---------+ |
| | :c:func:`pthread_barrier_init` | Yes | |
| +--------------------------------------------+---------+ |
| | :c:func:`pthread_barrier_wait` | Yes | |
| +--------------------------------------------+---------+ |
| | :c:func:`pthread_barrierattr_destroy` | Yes | |
| +--------------------------------------------+---------+ |
| | :c:func:`pthread_barrierattr_init` | Yes | |
| +--------------------------------------------+---------+ |
| | :c:func:`pthread_barrierattr_getpshared` | Yes | |
| +--------------------------------------------+---------+ |
| | :c:func:`pthread_barrierattr_setpshared` | Yes | |
| +--------------------------------------------+---------+ |
| | :c:func:`pthread_barrierattr_getpshared` | Yes | |
| +--------------------------------------------+---------+ |
| | :c:func:`pthread_barrierattr_setpshared` | Yes | |
| +--------------------------------------------+---------+ |
| |
| _POSIX_CPUTIME |
| -------------- |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | :c:func:`clock_getcpuclockid` | Yes | |
| +--------------------------------+---------+ |
| |
| _POSIX_MEMORY_PROTECTION |
| ------------------------ |
| |
| +--------------------------------+----------------+ |
| | API | Support | |
| +================================+================+ |
| | :c:func:`mprotect` | Dummy [#fn17]_ | |
| +--------------------------------+----------------+ |
| |
| .. [#fn17] The function returns a success value but doesn't implement |
| the required functionality. |
| |
| _POSIX_PRIORITIZED_IO |
| --------------------- |
| |
| No functions under this option. |
| |
| _POSIX_PRIORITY_SCHEDULING |
| -------------------------- |
| |
| +-------------------------------------------+---------+ |
| | API | Support | |
| +===========================================+=========+ |
| | :c:func:`sched_get_priority_max` | Yes | |
| +-------------------------------------------+---------+ |
| | :c:func:`sched_get_priority_min` | Yes | |
| +-------------------------------------------+---------+ |
| | :c:func:`sched_getparam` | Yes | |
| +-------------------------------------------+---------+ |
| | :c:func:`sched_getscheduler` | Yes | |
| +-------------------------------------------+---------+ |
| | :c:func:`sched_rr_get_interval` | Yes | |
| +-------------------------------------------+---------+ |
| | :c:func:`sched_setparam` | Yes | |
| +-------------------------------------------+---------+ |
| | :c:func:`sched_setscheduler` | Yes | |
| +-------------------------------------------+---------+ |
| | :c:func:`sched_yield` | Yes | |
| +-------------------------------------------+---------+ |
| | :c:func:`posix_spawnattr_getschedparam` | Yes | |
| +-------------------------------------------+---------+ |
| | :c:func:`posix_spawnattr_setschedparam` | Yes | |
| +-------------------------------------------+---------+ |
| | :c:func:`posix_spawnattr_getschedpolicy` | Yes | |
| +-------------------------------------------+---------+ |
| | :c:func:`posix_spawnattr_setschedpolicy` | Yes | |
| +-------------------------------------------+---------+ |
| |
| _POSIX_RAW_SOCKETS |
| ------------------ |
| |
| No functions under this option. |
| |
| _POSIX_SPAWN |
| ------------ |
| |
| Depends on ``CONFIG_BUILD_KERNEL``. |
| |
| +---------------------------------------------+---------+ |
| | API | Support | |
| +=============================================+=========+ |
| | :c:func:`posix_spawn` | Yes | |
| +---------------------------------------------+---------+ |
| | :c:func:`posix_spawn_file_actions_addclose` | Yes | |
| +---------------------------------------------+---------+ |
| | :c:func:`posix_spawn_file_actions_adddup2` | Yes | |
| +---------------------------------------------+---------+ |
| | :c:func:`posix_spawn_file_actions_addopen` | Yes | |
| +---------------------------------------------+---------+ |
| | :c:func:`posix_spawn_file_actions_destroy` | Yes | |
| +---------------------------------------------+---------+ |
| | :c:func:`posix_spawn_file_actions_init` | Yes | |
| +---------------------------------------------+---------+ |
| | :c:func:`posix_spawnattr_destroy` | Yes | |
| +---------------------------------------------+---------+ |
| | :c:func:`posix_spawnattr_getflags` | Yes | |
| +---------------------------------------------+---------+ |
| | :c:func:`posix_spawnattr_getpgroup` | No | |
| +---------------------------------------------+---------+ |
| | :c:func:`posix_spawnattr_getsigdefault` | No | |
| +---------------------------------------------+---------+ |
| | :c:func:`posix_spawnattr_getsigmask` | Yes | |
| +---------------------------------------------+---------+ |
| | :c:func:`posix_spawnattr_init` | Yes | |
| +---------------------------------------------+---------+ |
| | :c:func:`posix_spawnattr_setflags` | Yes | |
| +---------------------------------------------+---------+ |
| | :c:func:`posix_spawnattr_setpgroup` | No | |
| +---------------------------------------------+---------+ |
| | :c:func:`posix_spawnattr_setsigdefault` | No | |
| +---------------------------------------------+---------+ |
| | :c:func:`posix_spawnattr_setsigmask` | Yes | |
| +---------------------------------------------+---------+ |
| | :c:func:`posix_spawnp` | Yes | |
| +---------------------------------------------+---------+ |
| |
| _POSIX_SPIN_LOCKS |
| ----------------- |
| |
| Depends on ``CONFIG_PTHREAD_SPINLOCKS``. |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | :c:func:`pthread_spin_destroy` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`pthread_spin_init` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`pthread_spin_lock` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`pthread_spin_trylock` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`pthread_spin_unlock` | Yes | |
| +--------------------------------+---------+ |
| |
| _POSIX_SPORADIC_SERVER |
| ---------------------- |
| |
| No functions under this option. |
| |
| _POSIX_THREAD_PROCESS_SHARED |
| ---------------------------- |
| |
| +------------------------------------------+---------+ |
| | API | Support | |
| +==========================================+=========+ |
| | :c:func:`pthread_condattr_getpshared` | Yes | |
| +------------------------------------------+---------+ |
| | :c:func:`pthread_condattr_setpshared` | Yes | |
| +------------------------------------------+---------+ |
| | :c:func:`pthread_mutexattr_getpshared` | Yes | |
| +------------------------------------------+---------+ |
| | :c:func:`pthread_mutexattr_setpshared` | Yes | |
| +------------------------------------------+---------+ |
| | :c:func:`pthread_rwlockattr_getpshared` | Yes | |
| +------------------------------------------+---------+ |
| | :c:func:`pthread_rwlockattr_setpshared` | Yes | |
| +------------------------------------------+---------+ |
| | :c:func:`pthread_barrierattr_getpshared` | Yes | |
| +------------------------------------------+---------+ |
| | :c:func:`pthread_barrierattr_setpshared` | Yes | |
| +------------------------------------------+---------+ |
| |
| _POSIX_ADVISORY_INFO |
| -------------------- |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | posix_fadvise() | No | |
| +--------------------------------+---------+ |
| | :c:func:`posix_fallocate` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`posix_memalign` | Yes | |
| +--------------------------------+---------+ |
| | posix_madvise() | Empty | |
| +--------------------------------+---------+ |
| |
| _POSIX_SAVED_IDS |
| ---------------- |
| |
| No functions under this option. |
| |
| _POSIX_VDISABLE |
| --------------- |
| |
| No functions under this option. |
| |
| _POSIX2_CHAR_TERM |
| ----------------- |
| |
| No utilities under this option. |
| |
| _POSIX2_FORT_DEV |
| ---------------- |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | fort77 | No | |
| +--------------------------------+---------+ |
| |
| _POSIX2_FORT_RUN |
| ---------------- |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | asa | No | |
| +--------------------------------+---------+ |
| |
| _POSIX2_LOCALEDEF |
| ----------------- |
| |
| No utilities under this option. |
| |
| _POSIX2_PBS |
| ----------- |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | qalter | No | |
| +--------------------------------+---------+ |
| | qdel | No | |
| +--------------------------------+---------+ |
| | qhold | No | |
| +--------------------------------+---------+ |
| | qmove | No | |
| +--------------------------------+---------+ |
| | qmsg | No | |
| +--------------------------------+---------+ |
| | qrerun | No | |
| +--------------------------------+---------+ |
| | qrls | No | |
| +--------------------------------+---------+ |
| | qselect | No | |
| +--------------------------------+---------+ |
| | qsig | No | |
| +--------------------------------+---------+ |
| | qstat | No | |
| +--------------------------------+---------+ |
| | qsub | No | |
| +--------------------------------+---------+ |
| |
| _POSIX2_PBS_ACCOUNTING |
| ---------------------- |
| |
| No utilities under this option. |
| |
| _POSIX2_PBS_CHECKPOINT |
| ---------------------- |
| |
| No utilities under this option. |
| |
| _POSIX2_PBS_LOCATE |
| ------------------ |
| |
| No utilities under this option. |
| |
| _POSIX2_PBS_MESSAGE |
| ------------------- |
| |
| No utilities under this option. |
| |
| _POSIX2_PBS_TRACK |
| ----------------- |
| |
| No utilities under this option. |
| |
| _POSIX2_UPE |
| ----------- |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | nm | No | |
| +--------------------------------+---------+ |
| |
| _XOPEN_CRYPT |
| ------------ |
| |
| Depends on ``CONFIG_CRYPTO``; |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | :c:func:`crypt` | Yes | |
| +--------------------------------+---------+ |
| | encrypt() | No | |
| +--------------------------------+---------+ |
| | setkey() | No | |
| +--------------------------------+---------+ |
| |
| _XOPEN_ENH_I18N |
| --------------- |
| |
| No interfaces fall under this option. |
| |
| _XOPEN_LEGACY |
| ------------- |
| |
| +--------------------------------+---------+ |
| | API | Support | |
| +================================+=========+ |
| | :c:func:`bcmp` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`bcopy` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`bzero` | Yes | |
| +--------------------------------+---------+ |
| | ecvt() | No | |
| +--------------------------------+---------+ |
| | fcvt() | No | |
| +--------------------------------+---------+ |
| | ftime() | No | |
| +--------------------------------+---------+ |
| | gcvt() | No | |
| +--------------------------------+---------+ |
| | getwd() | No | |
| +--------------------------------+---------+ |
| | index() | No | |
| +--------------------------------+---------+ |
| | :c:func:`mktemp` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`rindex` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`utimes` | Yes | |
| +--------------------------------+---------+ |
| | :c:func:`wcswcs` | Yes | |
| +--------------------------------+---------+ |
| |
| _XOPEN_STREAMS |
| -------------- |
| |
| +---------------------------------+---------+ |
| | API | Support | |
| +=================================+=========+ |
| | fattach() | No | |
| +---------------------------------+---------+ |
| | fdetach() | No | |
| +---------------------------------+---------+ |
| | getmsg() | No | |
| +---------------------------------+---------+ |
| | getpmsg() | No | |
| +---------------------------------+---------+ |
| | :c:func:`ioctl` | Yes | |
| +---------------------------------+---------+ |
| | isastream() | No | |
| +---------------------------------+---------+ |
| | putmsg() | No | |
| +---------------------------------+---------+ |
| | putpmsg() | No | |
| +---------------------------------+---------+ |
| |
| POSIX_BARRIERS |
| -------------- |
| |
| +----------------------------------------+---------+ |
| | API | Support | |
| +========================================+=========+ |
| | :c:func:`pthread_barrier_destroy` | Yes | |
| +----------------------------------------+---------+ |
| | :c:func:`pthread_barrier_init` | Yes | |
| +----------------------------------------+---------+ |
| | :c:func:`pthread_barrier_wait` | Yes | |
| +----------------------------------------+---------+ |
| | :c:func:`pthread_barrierattr_destroy` | Yes | |
| +----------------------------------------+---------+ |
| | :c:func:`pthread_barrierattr_init` | Yes | |
| +----------------------------------------+---------+ |
| |
| POSIX_RW_LOCKS |
| -------------- |
| |
| Reader Writer Locks: |
| |
| +------------------------------------------+---------+ |
| | API | Support | |
| +==========================================+=========+ |
| | :c:func:`pthread_rwlock_clockrdlock` | Yes | |
| +------------------------------------------+---------+ |
| | :c:func:`pthread_rwlock_clockwrlock` | Yes | |
| +------------------------------------------+---------+ |
| | :c:func:`pthread_rwlock_destroy` | Yes | |
| +------------------------------------------+---------+ |
| | :c:func:`pthread_rwlock_init` | Yes | |
| +------------------------------------------+---------+ |
| | :c:func:`pthread_rwlock_rdlock` | Yes | |
| +------------------------------------------+---------+ |
| | :c:func:`pthread_rwlock_timedrdlock` | Yes | |
| +------------------------------------------+---------+ |
| | :c:func:`pthread_rwlock_timedwrlock` | Yes | |
| +------------------------------------------+---------+ |
| | :c:func:`pthread_rwlock_tryrdlock` | Yes | |
| +------------------------------------------+---------+ |
| | :c:func:`pthread_rwlock_trywrlock` | Yes | |
| +------------------------------------------+---------+ |
| | :c:func:`pthread_rwlock_unlock` | Yes | |
| +------------------------------------------+---------+ |
| | :c:func:`pthread_rwlock_wrlock` | Yes | |
| +------------------------------------------+---------+ |
| | :c:func:`pthread_rwlockattr_destroy` | Yes | |
| +------------------------------------------+---------+ |
| | :c:func:`pthread_rwlockattr_init` | Yes | |
| +------------------------------------------+---------+ |
| | :c:func:`pthread_rwlockattr_getpshared` | Yes | |
| +------------------------------------------+---------+ |
| | :c:func:`pthread_rwlockattr_setpshared` | Yes | |
| +------------------------------------------+---------+ |
| |
| _POSIX2_C_DEV |
| ------------- |
| |
| +-----------------------------------+---------+ |
| | API | Support | |
| +===================================+=========+ |
| | c99 | No | |
| +-----------------------------------+---------+ |
| | lex | No | |
| +-----------------------------------+---------+ |
| | yacc | No | |
| +-----------------------------------+---------+ |
| |
| _POSIX2_SW_DEV |
| -------------- |
| |
| +-----------------------------------+---------+ |
| | API | Support | |
| +===================================+=========+ |
| | ar | No | |
| +-----------------------------------+---------+ |
| | make | No | |
| +-----------------------------------+---------+ |
| | strip | No | |
| +-----------------------------------+---------+ |
| | nm | No | |
| +-----------------------------------+---------+ |
| |
| References |
| ========== |
| |
| * IEEE Std 1003.13, 2003 - Standardized Application Environment Profile (AEP)—POSIX® Realtime and Embedded Application Support |
| |
| * `IEEE Std 1003.1, 2004 Subprofiling Option Groups <https://pubs.opengroup.org/onlinepubs/009604299/xrat/subprofiles.html>`_ |
| |
| * `IEEE Std 1003.1, 2008 Subprofiling Option Groups <https://pubs.opengroup.org/onlinepubs/9699919799.2008edition/xrat/V4_subprofiles.html>`_ |
| |
| * `IEEE Std 1003.1, 2013 Subprofiling Option Groups <https://pubs.opengroup.org/onlinepubs/9699919799.2013edition/xrat/V4_subprofiles.html>`_ |
| |
| * `IEEE Std 1003.1, 2016 Subprofiling Option Groups <https://pubs.opengroup.org/onlinepubs/9699919799.2016edition/xrat/V4_subprofiles.html>`_ |
| |
| * `IEEE Std 1003.1, 2018 Subprofiling Option Groups <https://pubs.opengroup.org/onlinepubs/9699919799.2018edition/xrat/V4_subprofiles.html>`_ |
| |
| * `IEEE Std 1003.1, 2024 Subprofiling Option Groups <https://pubs.opengroup.org/onlinepubs/9799919799/xrat/V4_subprofiles.html>`_ |