#include #include #include extern char** environ; extern "C" FILE* _fdopen_impl(int, const char*, int); extern "C" void _init_stdio(); typedef void initfunc_t(void); extern initfunc_t *__init_array_start[], *__init_array_end[]; static void handle_init_array(void) { for (initfunc_t** p = __init_array_start; p != __init_array_end; p++) (*p)(); } extern "C" { void libc_init(int argc, char** argv, int envc, char** envp) { ignore(argc, argv, envc); environ = envp; _init_stdio(); stdin = _fdopen_impl(STDIN_FILENO, "r", _IOLBF); stdout = _fdopen_impl(STDOUT_FILENO, "w", _IOLBF); stderr = _fdopen_impl(STDERR_FILENO, "w", _IONBF); handle_init_array(); } }