#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