### The list of function support for POSIX 51 standard in the RT-Thread

<ctype.h>
+ isalnum()
+ isalpha()
+ isblank()
+ iscntrl()
+ isdigit()
+ isgraph()
+ islower()
+ isprint()
+ ispunct()
+ isspace()
+ isupper()
+ isxdigit()
+ tolower()
+ toupper()

<errno.h> -> Suggesting to use <sys/errno.h> instead of <errno.h> to be compatible with three compilation platforms of IAR Keil GCC at the same time.
+ errno

<fcntl.h>
+ open()

<fenv.h>       ;the 'env' should combined with non-volatile devices
+ feclearexcept()
+ fegetenv()
+ fegetexceptflag()
+ fegetround()
+ feholdexcept()
+ feraiseexcept()
+ fesetenv()
+ fesetexceptflag()
+ fesetround()
+ fetestexcept()
+ feupdateenv()

<inttypes.h>
+ imaxabs()
+ imaxdiv()
+ strtoimax()
+ strtoumax()

<locale.h>
+ localeconv()
+ setlocale()

<pthread.h>
+ pthread_atfork()
+ pthread_attr_destroy()
+ pthread_attr_getdetachstate()
+ pthread_attr_getguardsize()
+ pthread_attr_getinheritsched()
+ pthread_attr_getschedparam()
+ pthread_attr_getschedpolicy()
+ pthread_attr_getscope()
+ pthread_attr_getstack()
+ pthread_attr_getstackaddr()
+ pthread_attr_getstacksize()
+ pthread_attr_init()
+ pthread_attr_setdetachstate()
+ pthread_attr_setguardsize()
+ pthread_attr_setinheritsched()
+ pthread_attr_setschedparam()
+ pthread_attr_setschedpolicy()
+ pthread_attr_setscope()
+ pthread_attr_setstack()
+ pthread_attr_setstackaddr()
+ pthread_attr_setstacksize()
+ pthread_cancel()
+ pthread_cleanup_pop()
+ pthread_cleanup_push()
+ pthread_cond_broadcast()
+ pthread_cond_destroy()
+ pthread_cond_init()
+ pthread_cond_signal()
+ pthread_cond_timedwait()
+ pthread_cond_wait()
+ pthread_condattr_destroy()
+ pthread_condattr_getclock()
+ pthread_condattr_init()
+ pthread_condattr_setclock()
+ pthread_create()
+ pthread_detach()
+ pthread_equal()
+ pthread_exit()
+ pthread_getcpuclockid()
+ pthread_getconcurrency()
+ pthread_getschedparam()
+ pthread_getspecific()
+ pthread_join()
+ pthread_key_create()
+ pthread_key_delete()
+ pthread_mutex_destroy()
+ pthread_mutex_getprioceiling()
+ pthread_mutex_init()
+ pthread_mutex_lock()
+ pthread_mutex_setprioceiling()
+ pthread_mutex_trylock()
+ pthread_mutex_unlock()
+ pthread_mutexattr_destroy()
+ pthread_mutexattr_getprioceiling()
+ pthread_mutexattr_getprotocol()
+ pthread_mutexattr_gettype()
+ pthread_mutexattr_init()
+ pthread_mutexattr_setprioceiling()
+ pthread_mutexattr_setprotocol()
+ pthread_mutexattr_settype()
+ pthread_once()
+ pthread_self()
+ pthread_setcancelstate()
+ pthread_setcanceltype()
+ pthread_setconcurrency()
+ pthread_setschedparam()
+ pthread_setschedprio()
+ pthread_setspecific()
+ pthread_testcancel()

<sched.h>
+ sched_get_priority_max()
+ sched_get_priority_min()
+ sched_rr_get_interval()

<samaphore.h>
+ sem_close()
+ sem_destroy()
+ sem_getvalue()
+ sem_init()
+ sem_open()
+ sem_post()
+ sem_timedwait()
+ sem_trywait()
+ sem_unlink()
+ sem_wait()

<setjmp.h>
+ longjmp()
+ setjmp()

<signal.h> ->  Suggesting to use <sys/signal.h> instead of <signal.h> to be compatible with three compilation platforms of IAR Keil GCC at the same time.
+ kill()
+ pthread_kill()
+ pthread_sigmask()
+ raise()
+ sigaction()
+ sigaddset()
+ sigdelset()
+ sigemptyset()
+ sigfillset()
+ sigismember()
+ signal()
+ sigpending()
+ sigprocmask()
- sigqueue()
+ sigsuspend()
+ sigtimedwait()
+ sigwait()
+ sigwaitinfo()

<stdarg.h>
+ va_arg()
+ va_copy()
+ va_end()
+ va_start()

<stdio.h>
+ clearerr()
+ fclose()
- fdopen()
+ feof()
+ ferror()
+ fflush()
+ fgetc()
+ fgets()
+ fileno()    ; GCC and IAR support, but Keil doesn't support
- flockfile()
+ fopen()
+ fprintf()
+ fputc()
+ fputs()
+ fread()
+ freopen()
+ fscanf()
- ftrylockfile()
- funlockfile()
+ fwrite()
+ getc()
% getc_unlocked()       ; thread safe in the default
+ getchar()
+ getchar_unlocked()
+ gets()
+ perror()
+ printf()
+ putc()
% putc_unlocked()       ; thread safe in the default
+ putchar()
% putchar_unlocked()    ; thread safe in the default
+ puts()
+ scanf()
+ setbuf()
+ setvbuf()
+ snprintf()
+ sprintf()
+ sscanf()
+ stderr
+ stdin
+ stdout
+ ungetc()
+ vfprintf()
+ vfscanf()
+ vprintf()
+ vscanf()
+ vsnprintf()
+ vsprintf()
+ vsscanf()

<stdlib.h>
+ abort()
+ abs()
+ atof()
+ atoi()
+ atol()
+ atoll()
+ bsearch()
+ calloc()
+ div()
+ free()
+ getenv()
+ labs()
+ ldiv()
+ llabs()
+ lldiv()
+ malloc()
+ qsort()
+ rand()
% rand_r()     ; thread safe in the default
+ realloc()
- setenv()     ;the 'env' should combined with non-volatile devices
+ srand()
+ strtod()
+ strtof()
+ strtol()
+ strtold()
+ strtoll()
+ strtoul()
+ strtoull()
- unsetenv()   ;the 'env' should combined with non-volatile devices

<string.h>
+ memchr()
+ memcmp()
+ memcpy()
+ memmove()
+ memset()
+ strcat()
+ strchr()
+ strcmp()
+ strcoll()
+ strcpy()
+ strcspn()
+ strerror()
% strerror_r() ; thread safe in the default
+ strlen()
+ strncat()
+ strncmp()
+ strncpy()
+ strpbrk()
+ strrchr()
+ strspn()
+ strstr()
+ strtok()
% strtok_r()   ; thread safe in the default
+ strxfrm()

<sys/mman.h>
- mlockall()
+ mmap()
- munlock()
+ munmap()
- shm_open()
- shm_unlink()

<sys/utsname.h>
+ uname()

<time.h>   -> Suggesting to use <sys/time.h> instead of <time.h> to be compatible with three compilation platforms of IAR Keil GCC at the same time.
+ asctime()
+ asctime_r()
+ clock_getres()
+ clock_gettime()
+ clock_nanosleep()
+ clock_settime()
+ ctime()
+ ctime_r()
+ difftime()
+ gmtime()
+ gmtime_r()
+ localtime()
+ localtime_r()
+ mktime()
+ nanosleep()
+ strftime()
+ time()
+ timer_create()
+ timer_delete()
+ timer_getoverrun()
+ timer_gettime()
+ timer_settime()
- tzname       ; you should better use 'tz_xxx' in the rt-thread.
- tzset()      ; you should better use 'tz_xxx' in the rt-thread.

<unistd.h>
+ alarm()
+ close()
+ environ
% fdatasync()   ;smaller ranther than <fsync>, in the rt-thread, it is universal
+ fsync()
+ pause()
+ read()
+ sysconf()
+ write()
- confstr()


