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 CONFIG_NEWLIB_LIBC in the application configuration file. Part of the support for newlib is a set of hooks available under 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:

  • 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()