diff --git a/components/libc/compilers/armlibc/syscalls.c b/components/libc/compilers/armlibc/syscalls.c index 3b1627d82a8220433dd828b03d013b13e9b6d3f4..ccdcfc86ea3341cf9d6d72689a2e95438c93cc25 100644 --- a/components/libc/compilers/armlibc/syscalls.c +++ b/components/libc/compilers/armlibc/syscalls.c @@ -336,7 +336,13 @@ int fgetc(FILE *f) #ifdef RT_USING_POSIX char ch; - if (libc_stdio_read(&ch, 1) == 1) + if (libc_stdio_get_console() < 0) + { + LOG_W("Do not invoke standard output before initializing libc"); + return -1; + } + + if(read(STDIN_FILENO, &ch, 1) == 1) return ch; #endif