Standard C Compatibility

The following functions are missing from WCRT compared to standard C:

<math.h>

double frexp( double x, int *exp );
double modf( double x, double *ip );
double fmod( double x, double y );

float ffrexp( float x, int *exp );
float fmodf( float x, float *ip );
float ffmod( float x, float y );

<stdio.h>

FILE *tmpfile( void );

int setvbuf( FILE *stream, char *buf, int mode, unsigned int size );
void setbuf( FILE *stream, char *buf );

void clearerr( FILE *stream );
int feof( FILE *stream );
int ferror( FILE *stream );
void perror( const char *s );

<stdlib.h>

int system( const char *s );

<string.h>

char *strerror( unsigned int n );

<time.h>

time_t time( time_t *tp );
double difftime( time_t time2, time_t time1 );
time_t mktime( struct tm *tp );
char *ctime( const time_t *tp );
struct tm *gmtime( const time_t *tp );
struct tm *localtime( const time_t *tp );
unsigned int strftime( char *s, unsigned int smax, const char *fmt, const struct tm *tp );

<wchar.h>

int fwprintf( FILE *stream, const wchar_t *format, ... );
int swprintf( wchar_t *s, size_t n, const wchar_t *format, ... );
int vfwprintf( FILE *stream, const wchar_t *format, va_list arg );
int vswprintf( wchar_t *s, size_t n, const wchar_t *format, va_list arg );
int vwprintf( const wchar_t *format, va_list arg );
int wprintf( const wchar_t *format, ... );

int fwscanf( FILE *stream, const wchar_t *format, ... );
int swscanf( const wchar_t *s, const wchar_t *format, ... );
int vfwscanf( FILE *stream, const wchar_t *format, va_list arg );
int vswscanf( const wchar_t *s, const wchar_t *format, va_list arg );
int vwscanf( const wchar_t *format, va_list arg );
int wscanf( const wchar_t *format, ... );

wint_t fgetwc( FILE *stream );
wchar_t *fgetws( wchar_t *s, int n, FILE *stream );
wint_t fputwc( wchar_t c, FILE *stream );
int fputws( const wchar_t *s, FILE *stream );
int fwide( FILE *stream, int mode );
wint_t getwc( FILE *stream );
wint_t getwchar( void );
wint_t putwc( wchar_t c, FILE *stream );
wint_t putwchar( wchar_t c );
wint_t ungetwc( wint_t c, FILE *stream );

double wcstod( const wchar_t *s, wchar_t **endp );
float wcstof( const wchar_t *s, wchar_t **endp );
long double wcstold( const wchar_t *s, wchar_t **endp );
long int wcstol( const wchar_t *s, wchar_t **endp, int base );
long long int wcstoll( const wchar_t *s, wchar_t **endp, int base );
unsigned long int wcstoul( const wchar_t *s, wchar_t **endp, int base );
unsigned long long int wcstoull( const wchar_t *s, wchar_t **endp, int base );

size_t wcsxfrm( wchar_t *s, const wchar_t *ct, size_t n );

size_t wcsftime(wchar_t *s, size_t smax, const wchar_t *fmt, const struct tm *tp );

wint_t btowc( int c );
int wctob( wint_t c );
int mbsinit( const mbstate_t *ps );
size_t mbrlen( const char *s, size_t n, mbstate_t *ps );
size_t mbrtowc( wchar_t *pwc, const char *cs, size_t n, mbstate_t *ps );
size_t wcrtomb( char *s, wchar_t wc, mbstate_t *ps );
size_t mbsrtowcs( wchar_t *dst, const char **src, size_t len, mbstate_t *ps );
size_t wcsrtombs( char *dst, const wchar_t **src, size_t len, mbstate_t *ps );