blob: e01a74f44de8953aa1c196754dc0a1d4f718ebb8 [file] [log] [blame]
.. _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()