Fixed stdio file descriptors not being initialised properly
This commit is contained in:
@@ -26,8 +26,8 @@ typedef struct __io_file FILE;
|
|||||||
extern FILE *__get_stdio_file(int);
|
extern FILE *__get_stdio_file(int);
|
||||||
|
|
||||||
#define stdin (__get_stdio_file(0))
|
#define stdin (__get_stdio_file(0))
|
||||||
#define stdout (__get_stdio_file(0))
|
#define stdout (__get_stdio_file(1))
|
||||||
#define stderr (__get_stdio_file(0))
|
#define stderr (__get_stdio_file(2))
|
||||||
|
|
||||||
extern FILE *fopen(const char *path, const char *mode);
|
extern FILE *fopen(const char *path, const char *mode);
|
||||||
extern FILE *freopen(const char *path, const char *mode, FILE *fp);
|
extern FILE *freopen(const char *path, const char *mode, FILE *fp);
|
||||||
|
|||||||
@@ -164,6 +164,8 @@ static void init_stdio(mx_bootstrap_handle_t *handles, size_t nhandles)
|
|||||||
|
|
||||||
init_stdio_fd(i, fd_handles[i], n);
|
init_stdio_fd(i, fd_handles[i], n);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__fio_init(0, 1, 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
int __crt_init(mx_handle_t bootstrap)
|
int __crt_init(mx_handle_t bootstrap)
|
||||||
@@ -208,10 +210,12 @@ int __crt_init(mx_handle_t bootstrap)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
init_stdio(start_handles, nr_handles);
|
init_stdio(start_handles, nr_handles);
|
||||||
|
|
||||||
int ret = main(msg->args_num, argv);
|
int ret = main(msg->args_num, argv);
|
||||||
|
|
||||||
__crt_run_atexit();
|
__crt_run_atexit();
|
||||||
mio_destroy_global_fd_list();
|
mio_fd_cleanup();
|
||||||
|
mio_fs_cleanup();
|
||||||
mx_task_kill(mx_bootstrap_handle_get(MX_B_TASK_SELF), ret);
|
mx_task_kill(mx_bootstrap_handle_get(MX_B_TASK_SELF), ret);
|
||||||
|
|
||||||
/* unreachable */
|
/* unreachable */
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ ssize_t read(int fd, void *buf, size_t count)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__set_errno(0);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -21,6 +22,7 @@ ssize_t write(int fd, const void *buf, size_t count)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__set_errno(0);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -32,6 +34,7 @@ int open(const char *pathname, int flags)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__set_errno(0);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -43,5 +46,6 @@ int close(int fd)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__set_errno(0);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user