From 0924d277f67258c7c264cab1287671bf04bea231 Mon Sep 17 00:00:00 2001 From: gbcwbz Date: Sun, 23 Dec 2018 19:14:14 +0800 Subject: [PATCH] [dfs] Fix stdio fd error when POSIX api is used POSIX api e.g. poll read write --- components/dfs/src/dfs.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/components/dfs/src/dfs.c b/components/dfs/src/dfs.c index cf0b2b0ef9..12ae8e9d95 100644 --- a/components/dfs/src/dfs.c +++ b/components/dfs/src/dfs.c @@ -18,6 +18,10 @@ #include #endif +#ifdef RT_USING_DFS_DEVFS +#include +#endif + /* Global variables */ const struct dfs_filesystem_ops *filesystem_operation_table[DFS_FILESYSTEM_TYPES_MAX]; struct dfs_filesystem filesystem_table[DFS_FILESYSTEMS_MAX]; @@ -212,6 +216,11 @@ struct dfs_fd *fd_get(int fd) struct dfs_fd *d; struct dfs_fdtable *fdt; +#ifdef RT_USING_DFS_DEVFS + if ((0 <= fd) && (fd <= 2)) + fd = libc_stdio_get_console(); +#endif + fdt = dfs_fdtable_get(); fd = fd - DFS_FD_OFFSET; if (fd < 0 || fd >= fdt->maxfd)