.. _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()