diff --git a/src/libCom/osi/os/default/epicsReadline.c b/src/libCom/osi/os/default/epicsReadline.c index eb7d83b16..0392c9d50 100644 --- a/src/libCom/osi/os/default/epicsReadline.c +++ b/src/libCom/osi/os/default/epicsReadline.c @@ -9,6 +9,7 @@ #include #include +#include #define epicsExportSharedSymbols @@ -326,6 +327,12 @@ epicsReadline (const char *prompt, void *context) } while ((c = getc (in)) != '\n') { if (c == EOF) { + if (ferror(in)) { + if ((errno == EINTR) || (errno == EPIPE)) { + clearerr(in); + continue; + } + } free (line); return NULL; }