#include <STDLIB_R.H>
Link against:
estlib.lib
_malloc_r (x, n) malloc(n)
Description
EPOC32 malloc uses the thread heap, so it is already thread-safe and no _malloc_r variants are needed.
Parameters
_calloc_r (x, n, m) calloc(n,m)
Description
Parameters
_realloc_r (x, p, n) realloc(p,n)
Description
Parameters
_free_r (x, p) free(p)
Description
Parameters
_dtoa_r(struct _reent *,double,int,int,int *,int *,char **)
IMPORT_C char* _dtoa_r(struct _reent *, double, int, int, int *, int *, char **);
Description
Parameters
Return value
_mstats_r(struct _reent *,char *)
IMPORT_C void _mstats_r(struct _reent *, char *);
Description
Parameters
_system_r(struct _reent *,const char *)
IMPORT_C int _system_r(struct _reent *, const char *);
Description
A reentrant version of system(const char *)system(const char *).
Parameters
Return value
_wsystem_r(struct _reent *,const wchar_t *)
IMPORT_C int _wsystem_r(struct _reent *, const wchar_t *);
Description
A wide-character version of reentrant of system(const char *)system(const char *).
Parameters
Return value
IMPORT_C int _rand_r(struct _reent *);
Description
Reentrant versions of rand(void)rand(void)
Parameters
Return value
_srand_r(struct _reent *,unsigned)
IMPORT_C void _srand_r(struct _reent *, unsigned);
Description
Reentrant versions of srand(unsigned)srand(unsigned)
Parameters
_setenv_r(struct _reent *,const char *,const char *,int)
IMPORT_C int _setenv_r(struct _reent *, const char *, const char *, int);
Description
A reentrant version of setenv(const char *,const char *,int)setenv(const char *,const char *,int).
Parameters
Return value
_unsetenv_r(struct _reent *,const char *)
IMPORT_C void _unsetenv_r(struct _reent *, const char *);
Description
A reentrant version of unsetenv(const char *)unsetenv(const char *).
Parameters
_getenv_r(struct _reent *,const char *)
IMPORT_C char* _getenv_r(struct _reent *, const char *);
Description
A reentrant version of getenv(const char *)getenv(const char *).
Parameters
Return value
_wsetenv_r(struct _reent *,const wchar_t *,const wchar_t *,int)
IMPORT_C int _wsetenv_r(struct _reent *, const wchar_t *, const wchar_t *, int);
Description
A reentrant version of wsetenv(const wchar_t *,const wchar_t *,int)wsetenv(const wchar_t *,const wchar_t *,int).
Parameters
Return value
_wunsetenv_r(struct _reent *,const wchar_t *)
IMPORT_C void _wunsetenv_r(struct _reent *, const wchar_t *);
Description
A reentrant version of wunsetenv(const wchar_t *)wunsetenv(const wchar_t *).
Parameters
_wgetenv_r(struct _reent *,const wchar_t *)
IMPORT_C wchar_t* _wgetenv_r(struct _reent *, const wchar_t *);
Description
A reentrant version of wgetenv(const wchar_t *)wgetenv(const wchar_t *).
Parameters
Return value
_strtoul_r(struct _reent *,const char *,char **,int)
IMPORT_C unsigned long _strtoul_r(struct _reent *, const char *, char **, int);
Description
Parameters
Return value
_atexit_processing_r(struct _reent *)
IMPORT_C void _atexit_processing_r(struct _reent *);
Description
It's possible to override exit(int)exit(int) by supplying abort(void)abort(void), exit(int)exit(int) and _exit(int) The generic exit(int)exit(int) and abort(void)abort(void) routines look like
void exit(int)exit(int) _ATTRIBUTE((noreturn)) { _atexit_processing_r(_REENT); _exit(code); } void abort(void)abort(void) _ATTRIBUTE((noreturn)) { _exit(1); }
which then allows your _exit(int) to capture all exits from ESTLIB, except for __assert(const char *,int,const char *)__assert(const char *,int,const char *) which calls abort(void)abort(void).
Parameters