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.