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.