diff --git a/nshlib/nsh_fscmds.c b/nshlib/nsh_fscmds.c index bf23beabe..88f76d1ee 100644 --- a/nshlib/nsh_fscmds.c +++ b/nshlib/nsh_fscmds.c @@ -802,10 +802,19 @@ int cmd_cat(FAR struct nsh_vtbl_s *vtbl, int argc, FAR char **argv) while (true) { ret = nsh_read(vtbl, buf, BUFSIZ); - if (ret <= 0) + if (ret == 0) { break; } + else if (ret < 0) + { + if (errno == EINTR) + { + continue; + } + + break; + } nsh_write(vtbl, buf, ret); }