| .. _c_library_v2: |
| |
| Standard C Library |
| ################## |
| |
| The kernel currently provides only the minimal subset of the standard C library |
| required to meet the needs of Zephyr and its subsystems and features, primarily |
| in the areas of string manipulation and display. |
| |
| Applications that require a more extensive C library can either submit |
| contributions that enhance the existing library or substitute with a |
| replacement library. |
| |
| The Zephyr SDK and other supported toolchains comes with a bare-metal C library |
| based on ``newlib`` that can be used with Zephyr by selecting the |
| :option:`CONFIG_NEWLIB_LIBC` in the application configuration file. Part of the |
| support for ``newlib`` is a set of hooks available under |
| :file:`lib/libc/newlib/libc-hooks.c` which integrates the c library with basic |
| kernel services. |
| |
| |
| Minimal C Library |
| ***************** |
| |
| The minimal C library is part of Zephyr and provides a minimal set of C |
| functions needed by Zephyr. |
| |
| The following functions are implemented in the minimal C |
| library included with Zephyr: |
| |
| .. rst-class:: rst-columns |
| |
| - abs() |
| - atoi() |
| - bsearch() |
| - calloc() |
| - free() |
| - gmtime() |
| - gmtime_r() |
| - isalnum() |
| - isalpha() |
| - isdigit() |
| - isgraph() |
| - isprint() |
| - isspace() |
| - isupper() |
| - isxdigit() |
| - localtime() |
| - malloc() |
| - memchr() |
| - memcmp() |
| - memcpy() |
| - memmove() |
| - memset() |
| - mktime() |
| - rand() |
| - realloc() |
| - snprintf() |
| - sprintf() |
| - strcat() |
| - strchr() |
| - strcmp() |
| - strcpy() |
| - strlen() |
| - trncat() |
| - strncmp() |
| - strncpy() |
| - strrchr() |
| - strstr() |
| - strtol() |
| - trtoul() |
| - time() |
| - tolower() |
| - toupper() |
| - vsnprintf() |
| - vsprintf() |