C Runtime API Reference

The table below lists the C Runtime library calls supported in the eRTOSenvironment.

eRTOS supports implicit thread-local storage. For more information, see the Microsoft documentation at https://docs.microsoft.com/en-us/cpp/cpp/storage-classes-cpp.

C++ Variables declared with storage class thread_local specifier or __declspec (thread) are not finalized if a thread or process is terminated abnormally — using RtTerminateProcess, TerminateThread or via a non-continuable exception, for instance.

Note: Implicit TLS initializers/finalizers must not take too long to execute. While they are executing, any real-time APIs that create or destroy internal eRTO kernel objects (e.g., threads, processes, mutexes, semaphores, open files, etc.) will block.

Note: Code executed by shutdown handler callback functions cannot use implicit thread-local storage.

Note: You can define UNDER_RTSS_UNSUPPORTED_CRT_APIS either before RtApi.h is included or as a pre-processor definition to see what RTSS C Runtime functions have been deprecated.

C Library Function Name

Notes

Deterministic?

_aligned_free

 

No  

_aligned_malloc

 

No

_aligned_msize

 

No  

_aligned_offset_malloc

 

No  

_aligned_offset_realloc

 

No  

_aligned_offset_recalloc

 

No  

_aligned_realloc

 

No  

_aligned_recalloc

 

No  

abs

 

Yes - the elapsed time for the call is less than 5 microseconds.

acos

 

Yes - the elapsed time for the call is less than 5 microseconds.

asin

 

Yes - the elapsed time for the call is less than 5 microseconds.

atan

 

Yes - the elapsed time for the call is less than 5 microseconds.

atan2

 

Yes - the elapsed time for the call is less than 5 microseconds.

atof

 

Yes - the elapsed time for the call is less than 5 microseconds.

atoi

The call is supported as both an Rt call and as a Windows call (for example, RtAtoi and Atoi)

Yes - the elapsed time for the call is less than 5 microseconds.

atol

 

Yes - the elapsed time for the call is less than 5 microseconds.

bsearch

 

Yes - the call is deterministic for small input sizes.

calloc

 

No

ceil

 

Yes - the elapsed time for the call is less than 5 microseconds.

clearerr

 

No

cos

 

Yes - the elapsed time for the call is less than 5 microseconds.

cosh

 

Yes - the elapsed time for the call is less than 5 microseconds.

difftime

 

Yes - the elapsed time for the call is less than 5 microseconds.

div

 

Yes - the elapsed time for the call is less than 5 microseconds.

errno

 

No

exit

 

No

exp

 

Yes - the elapsed time for the call is less than 5 microseconds.

fabs

 

Yes - the elapsed time for the call is less than 5 microseconds.

fclose

 

No

feof

 

 

ferror

 

No

fflush

 

No

fgets

 

No

floor

 

Yes - the elapsed time for the call is less than 5 microseconds.

fmod

 

Yes - the elapsed time for the call is less than 5 microseconds.

fopen

 

No

fprintf(stderr)

 

No

fputc

 

No

fputs

 

No

fread

 

No

free

 

No

frexp

 

Yes - the elapsed time for the call is less than 5 microseconds.

fseek

 

No

ftell

 

No

fwrite

 

No

getc

 

No

isalnum

 

Yes - the elapsed time for the call is less than 5 microseconds.

isalpha

 

Yes - the elapsed time for the call is less than 5 microseconds.

iscntrl

 

Yes - the elapsed time for the call is less than 5 microseconds.

isdigit

 

Yes - the elapsed time for the call is less than 5 microseconds.

isgraph

 

Yes - the elapsed time for the call is less than 5 microseconds.

islower

 

Yes - the elapsed time for the call is less than 5 microseconds.

isprint

 

Yes - the elapsed time for the call is less than 5 microseconds.

ispunct

 

Yes - the elapsed time for the call is less than 5 microseconds.

isspace

 

Yes - the elapsed time for the call is less than 5 microseconds.

isupper

 

Yes - the elapsed time for the call is less than 5 microseconds.

iswalnum

 

Yes - the elapsed time for the call is less than 5 microseconds.

iswalpha

 

Yes - the elapsed time for the call is less than 5 microseconds.

iswascii

 

Yes - the elapsed time for the call is less than 5 microseconds.

iswcntrl

 

Yes - the elapsed time for the call is less than 5 microseconds.

iswctype

 

Yes - the elapsed time for the call is less than 5 microseconds.

iswdigit

 

Yes - the elapsed time for the call is less than 5 microseconds.

iswgraph

 

Yes - the elapsed time for the call is less than 5 microseconds.

iswlower

 

Yes - the elapsed time for the call is less than 5 microseconds.

iswprint

 

Yes - the elapsed time for the call is less than 5 microseconds.

iswpunct

 

Yes - the elapsed time for the call is less than 5 microseconds.

iswspace

 

Yes - the elapsed time for the call is less than 5 microseconds.

iswupper

 

Yes - the elapsed time for the call is less than 5 microseconds.

iswxdigit

 

Yes - the elapsed time for the call is less than 5 microseconds.

isxdigit

 

Yes - the elapsed time for the call is less than 5 microseconds.

labs

 

Yes - the elapsed time for the call is less than 5 microseconds.

ldexp

 

Yes - the elapsed time for the call is less than 5 microseconds.

ldiv

 

Yes - the elapsed time for the call is less than 5 microseconds.

log

 

Yes - the elapsed time for the call is less than 5 microseconds.

log10

 

Yes - the elapsed time for the call is less than 5 microseconds.

longjmp

 

Yes - the elapsed time for the call is less than 5 microseconds.

main

 

No

malloc

 

No

memchr

 

Yes - the elapsed time for the call is less than 5 microseconds.

memcmp

 

Yes - the call is deterministic for small input sizes.

memcpy

 

Yes - the call is deterministic for small input sizes.

memmove

 

Yes - the call is deterministic for small input sizes.

memset

 

Yes - the elapsed time for the call is less than 5 microseconds.

modf

 

Yes - the elapsed time for the call is less than 5 microseconds.

perror

 

No

pow

 

Yes - the elapsed time for the call is less than 5 microseconds.

printf

The call is supported as both an Rt call and as a Windows call (for example, RtAtoi and Atoi)

No

putc

 

No

putchar

 

No

qsort

 

Yes - for small input sizes and if comparison function is deterministic

rand

 

No - can allocate memory.

realloc

 

No

rewind

 

No

setjmp

 

Yes - the elapsed time for the call is less than 5 microseconds.

signal

 

No

sin

 

Yes - the elapsed time for the call is less than 5 microseconds.

sinh

 

Yes - the elapsed time for the call is less than 5 microseconds.

sprintf

The call is supported as both an Rt call and as a Windows call (for example, RtAtoi and Atoi)

Yes - the call is deterministic for small input sizes.

sqrt

 

Yes - the elapsed time for the call is less than 5 microseconds.

srand

 

No - can allocate memory.

sscanf

 

No

strcat

 

Yes - the elapsed time for the call is less than 5 microseconds.

strchr

 

Yes - the elapsed time for the call is less than 5 microseconds.

strcmp

 

Yes - the elapsed time for the call is less than 5 microseconds.

strcpy

 

Yes - the call is deterministic for small input sizes.

strcspn

 

Yes - the elapsed time for the call is less than 5 microseconds.

strftime

 

Yes - the elapsed time for the call is less than 5 microseconds.

strerror

 

No - can allocate memory.

strlen

 

Yes - the elapsed time for the call is less than 5 microseconds.

strncat

 

Yes - the elapsed time for the call is less than 5 microseconds.

strncmp

 

Yes - the call is deterministic for small input sizes.

strncpy

 

Yes - the call is deterministic for small input sizes.

strpbrk

 

Yes - the elapsed time for the call is less than 5 microseconds.

strrchr

 

Yes - the elapsed time for the call is less than 5 microseconds.

strspn

 

Yes - the elapsed time for the call is less than 5 microseconds.

strstr

 

Yes - the elapsed time for the call is less than 5 microseconds.

strtod

 

Yes - the elapsed time for the call is less than 5 microseconds.

strtok

 

Yes - the elapsed time for the call is less than 5 microseconds.

strtol

 

Yes - the elapsed time for the call is less than 5 microseconds.

strtoul

 

Yes - the elapsed time for the call is less than 5 microseconds.

swprintf

 

Yes - the call is deterministic for small input sizes.

tan

 

Yes - the elapsed time for the call is less than 5 microseconds.

tanh

 

Yes - the elapsed time for the call is less than 5 microseconds.

tolower

 

Yes - the elapsed time for the call is less than 5 microseconds.

toupper

 

Yes - the elapsed time for the call is less than 5 microseconds.

towlower

 

Yes - the elapsed time for the call is less than 5 microseconds.

towupper

 

Yes - the elapsed time for the call is less than 5 microseconds.

ungetc

 

No - can allocate memory.

va_start

 

Yes - the elapsed time for the call is less than 5 microseconds.

vsprintf

 

No

wcscat

 

Yes - the elapsed time for the call is less than 5 microseconds.

wcschr

 

Yes - the elapsed time for the call is less than 5 microseconds.

wcscmp

 

Yes - the elapsed time for the call is less than 5 microseconds.

wcscpy

 

Yes - the elapsed time for the call is less than 5 microseconds.

wcscspn

 

Yes - the elapsed time for the call is less than 5 microseconds.

wcsftime

 

Yes - the elapsed time for the call is less than 5 microseconds.

wcslen

 

Yes - the elapsed time for the call is less than 5 microseconds.

wcsncat

 

Yes - the elapsed time for the call is less than 5 microseconds.

wcsncmp

 

Yes - the call is deterministic for small input sizes.

wcsncpy

 

Yes - the call is deterministic for small input sizes.

wcspbrk

 

Yes - the elapsed time for the call is less than 5 microseconds.

wcsrchr

 

Yes - the elapsed time for the call is less than 5 microseconds.

wcsspn

 

Yes - the elapsed time for the call is less than 5 microseconds.

wcsstr

 

Yes - the elapsed time for the call is less than 5 microseconds.

wcstod

 

Yes - the elapsed time for the call is less than 5 microseconds.

wcstok

 

Yes - the elapsed time for the call is less than 5 microseconds.

wcstol

 

Yes - the elapsed time for the call is less than 5 microseconds.

wcstoul

 

Yes - the elapsed time for the call is less than 5 microseconds.

wmain

 

No

wprintf

The call is supported as both an Rt call and as a Windows call (for example, RtAtoi and Atoi)

No

_wtof

 

Yes - the elapsed time for the call is less than 5 microseconds.

_wtoi

The call is supported as both an Rt call and as a Windows call (for example, RtAtoi and Atoi)

Yes - the elapsed time for the call is less than 5 microseconds.

_wtol

 

Yes - the elapsed time for the call is less than 5 microseconds.

_controlfp

 

No

_fpreset

 

No

Note: The eRTOS C Runtime function exit terminates a program execution and eRTOS closes all open files when the program ends; the value argument of exit is not returned to the caller.