dfs v2 修改 fd_new 的 startfd 起始值为 0 ;修复 futex_wait 超时时间换算异常; (#7705)

Signed-off-by: yangfasheng <yangfasheng@live.com>
This commit is contained in:
yangfasheng
2023-06-20 23:09:58 +08:00
committed by GitHub
parent 3e4797c63c
commit b4e59bac4e
3 changed files with 32 additions and 8 deletions
+25 -6
View File
@@ -30,15 +30,34 @@ int libc_system_init(void)
dev_console = rt_console_get_device();
if (dev_console)
{
int fd = libc_stdio_set_console(dev_console->parent.name, O_RDWR);
if (fd < 0)
int fd, ret;
char name[STDIO_DEVICE_NAME_MAX];
rt_snprintf(name, sizeof(name) - 1, "/dev/%s", dev_console->parent.name);
name[STDIO_DEVICE_NAME_MAX - 1] = '\0';
fd = open(name, O_RDWR);
if (fd >= 0)
{
/* set fd (0, 1, 2) */
ret = sys_dup2(fd, 0);
if (ret != fd)
{
close(fd);
}
sys_dup2(ret, 1);
sys_dup2(ret, 2);
ret = libc_stdio_set_console(dev_console->parent.name, O_RDWR);
if (ret < 0)
{
return -1;
}
}
else
{
return -1;
}
/* set fd (0, 1, 2) */
sys_dup2(fd, 0);
sys_dup2(fd, 1);
sys_dup2(fd, 2);
}
#endif /* RT_USING_POSIX_STDIO */
return 0;