Skip to content
Prev 47754 / 63424 Next

Detect a terminated pipe

On Mar 14, 2014, at 8:09 AM, Kirill M?ller <kirill.mueller at ivt.baug.ethz.ch> wrote:

            
As far as R is concerned, the connection is open. In addition, pipes exist even without the process - you can close one end of a pipe and it will still exist (that?s what makes pipes useful, actually, because you can choose to close arbitrary combination of the R/W ends). Detecting that the other end of the pipe has closed is generally done by sending/receiving data to/from the end of interest - i.e. reading from a pipe that has closed the write end on the other side will yield 0 bytes read. Writing to a pipe that has closed the read end on the other side will yield SIGPIPE error (note that for text connections you have to call flush() to send the buffer):
character(0)
Error in flush.connection(p) : ignoring SIGPIPE signal
Cheers,
Simon