Yeah 100% agree which is why I need to look when I have a little more time to understand what is going on.
On Sun, Dec 13, 2020 at 2:12 PM Gregory Nutt <spudan...@gmail.com> wrote: > > See > https://mail-archives.apache.org/mod_mbox/nuttx-dev/202012.mbox/%3CCAKFLXYwes3pcDA2zXsL2FcwgCS4PecdmiP9srkGEtTaOoLEhMg%40mail.gmail.com%3E > > I don't think this is the correct solution since with Xiao Xiang's > recent changes, stdin should never be closed. But it does give some > clues about the nature of the problem: stdin is no valid; stdout is okay > > On 12/13/2020 4:07 PM, Brennan Ashton wrote: > > This is impacting all the usbnsh configurations. I can take another > > look later this evening > > https://github.com/apache/incubator-nuttx/pull/2526 > > > > --Brennan > > > > On Fri, Dec 11, 2020 at 5:05 AM Gregory Nutt <spudan...@gmail.com> wrote: > >> Several other PRs specifically removed support for fclose (stdin). Are > >> you certain you want to restore it? I think this needs more analysis > >> and resolution with the previous changes that removed the fclose() of > >> stdin, stdout, and stderr. > >> > >> On 12/10/2020 5:37 PM, Masayuki Ishikawa wrote: > >>> Suzuki-san, > >>> > >>> Please send a PR (Pull Request) to > >>> https://github.com/apache/incubator-nuttx-apps/ > >>> > >>> On Thu, Dec 10, 2020 at 5:24 PM SUZUKI Keiji <zuki.ebe...@gmail.com> > >>> wrote: > >>> > >>>> Hi, > >>>> > >>>> I use STM32F407G-DISC1 (MB997D) and build nuttx on macOS Mojave > >>>> (10.14.6). > >>>> > >>>> The following error occurs with the default configuration of > >>>> stm32f4discovery:usbnsh. > >>>> > >>>> NuttShell (NSH) NuttX-10.0.0 > >>>> nsh> nsh: nsh_session: readline failed: 9 > >>>> > >>>> The reason seems that instream->fs_fd is -1 instead of 0 in the > >>>> readline() > >>>> function called by > >>>> nsh_session(). > >>>> > >>>> This error occurs in version 10.0-RC0 and after (I checked 10.0-RC0, 10.0 > >>>> and current master) > >>>> but does not occur in 9.1 and before (I checked 9.1, 8.2 and 7.31). > >>>> > >>>> The following patch fixed it in my environment but I don't know this is a > >>>> correct fix. > >>>> > >>>> === from here === > >>>> > >>>> diff --git a/nshlib/nsh_usbconsole.c b/nshlib/nsh_usbconsole.c > >>>> index 28f63bcc..768a621b 100644 > >>>> --- a/nshlib/nsh_usbconsole.c > >>>> +++ b/nshlib/nsh_usbconsole.c > >>>> @@ -77,8 +77,8 @@ > >>>> > >>>> static void nsh_configstdio(int fd, FAR struct console_stdio_s *pstate) > >>>> { > >>>> - /* Make sure the stdout, and stderr are flushed */ > >>>> - > >>>> + /* Make sure the stdin is closed and the stdout, and stderr are flushed > >>>> */ > >>>> + fclose(stdin); > >>>> fflush(stdout); > >>>> fflush(stderr); > >>>> > >>>> @@ -88,6 +88,9 @@ static void nsh_configstdio(int fd, FAR struct > >>>> console_stdio_s *pstate) > >>>> dup2(fd, 1); > >>>> dup2(fd, 2); > >>>> > >>>> + /* fdopen stdin */ > >>>> + fdopen(0, "r"); > >>>> + > >>>> /* Setup the stdout */ > >>>> > >>>> pstate->cn_outfd = 1; > >>>> > >>>> ===== > >>>> > >>>> Thanks, > >>>> SUZUKI Keiji > >>>>