[libc][syscalls] 在标准输入输出前加校验,反正在libc初始化之前调用printf出问题

This commit is contained in:
Meco Man
2021-09-27 06:51:40 -04:00
parent c8c632512a
commit 86bb54fde6
4 changed files with 46 additions and 2 deletions
@@ -15,6 +15,10 @@
#include <yfuns.h>
#include "libc.h"
#define DBG_TAG "dlib.syscall_write"
#define DBG_LVL DBG_INFO
#include <rtdbg.h>
#pragma module_name = "?__write"
size_t __write(int handle, const unsigned char *buf, size_t len)
@@ -30,6 +34,11 @@ size_t __write(int handle, const unsigned char *buf, size_t len)
#else
#ifdef RT_USING_POSIX
if (libc_stdio_get_console() < 0)
{
LOG_E("invoke standard output before initializing libc");
return _LLIO_ERROR;
}
return write(STDOUT_FILENO, (void*)buf, len);
#else
rt_device_t console_device;