Thanks for gregory and xiang.
yes... the right way is modified the error handling code in
nsh_catfile not fwrite. I will repaired it again.

BR,
wei peng

Xiang Xiao <xiaoxiang781...@gmail.com> 于2019年12月24日周二 上午9:58写道:

> Hi Peng,
> From http://www.cplusplus.com/reference/cstdio/fwrite/
> fwrite return zero to indicate the error, the detailed info could get
> from errno.
> So the right change is modified the error handling code in
> nsh_catfile, not the return type of fwrite.
>
> Thanks
> Xiang
>
> On Tue, Dec 24, 2019 at 9:48 AM wei peng <alvin.pe...@gmail.com> wrote:
> >
> > hi David,
> >
> > Thanks for your reply.
> >
> > Yes...i know the interface interface is standard,so what i had changed in
> > codes just repaired the problem.perhaps i should describe the problem  in
> > detail.
> >
> >
> > I entering "dmesg" on both terminals,because of the “CONFIG_IOB_DEBUG” is
> > enable so both of terminals will show messages continuously.
> > Then close one of them,and the other one will be frozen,after that i
> cannot
> > connect the borad (via usart or telnet).but i am sure the systerm is work
> > on.
> >
> >
> > I found the "dmesg" command call a function named "int nsh_catfile()",and
> > in this function,the logic is simple (read message from ramlog and write
> it
> > to terminals).
> > when write it to terminals ,it will call "size_t fwrite()"function, As
> you
> > see the size_t is unsigned cannot be negative. that is the problem.
> > i think if the terminal is close,the "size_t fwrite()"function should
> > return a negative number,and the nsh_catfile should be broken.
> >
> > BR,
> >
> > wei peng
> >
> > David Sidrane <davi...@apache.org> 于2019年12月23日周一 下午5:36写道:
> >
> > > Hi wei peng
> > >  See below.
> > >
> > > On 2019/12/23 07:41:40, wei peng <alvin.pe...@gmail.com> wrote:
> > > > hi~
> > > >   I connected the target board to terminal via "telnet" ,  in some
> cases
> > > > the terminal will be frozen. Here are detailed steps:
> > > >
> > > >    1. Enable "CONFIG_IOB_DEBUG"[necessary].
> > > >    2. New two terminals and connect to target board via "telnet".
> > > >    3. Input "dmesg" command,and the terminal will show information
> > > >    *continuously*.[two terminals are same][necessary]
> > > >    4. Close one of  the terminals,and the other one will be
> frozen.but
> > > the
> > > >    system is work on.
> > > >
> > > > I debug the system and repaired the bug,the file named commit.txt is
> > > > detailed steps.
> > > > BR,
> > > >
> > > > wei peng
> > >
> > > The interface is dictated by the OpenGroup stands [1]
> > > [1]
> https://pubs.opengroup.org/onlinepubs/009695399/functions/fwrite.html
> > >
> > > So that can not be changed.
> > >
> > > There must be a root cause related to what you are doing or a bug in
> the
> > > system. Check the configuration (compare it to other telnet board
> configs).
> > >
> > > Are you Entering dmesg on both terminals or on one and it is showing up
> > > the 2 terminals?
> > >
> > > David
> > >
> > >
>

Reply via email to