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