diff --git a/components/vfs/vfs_cdcacm.c b/components/vfs/vfs_cdcacm.c index fb590a445d..357e67277f 100644 --- a/components/vfs/vfs_cdcacm.c +++ b/components/vfs/vfs_cdcacm.c @@ -271,7 +271,7 @@ static int cdcacm_fcntl(int fd, int cmd, int arg) assert(fd == 0); int result; if (cmd == F_GETFL) { - result = 0; + result = O_RDWR; if (!s_blocking) { result |= O_NONBLOCK; } diff --git a/components/vfs/vfs_uart.c b/components/vfs/vfs_uart.c index 1f3e0df683..74c308f326 100644 --- a/components/vfs/vfs_uart.c +++ b/components/vfs/vfs_uart.c @@ -299,6 +299,7 @@ static int uart_fcntl(int fd, int cmd, int arg) assert(fd >=0 && fd < 3); int result = 0; if (cmd == F_GETFL) { + result |= O_RDWR; if (s_ctx[fd]->non_blocking) { result |= O_NONBLOCK; } diff --git a/components/vfs/vfs_usb_serial_jtag.c b/components/vfs/vfs_usb_serial_jtag.c index f5ab0b1f79..a0d0771c6c 100644 --- a/components/vfs/vfs_usb_serial_jtag.c +++ b/components/vfs/vfs_usb_serial_jtag.c @@ -245,6 +245,7 @@ static int usb_serial_jtag_fcntl(int fd, int cmd, int arg) { int result = 0; if (cmd == F_GETFL) { + result |= O_RDWR; if (s_ctx.non_blocking) { result |= O_NONBLOCK; }