[Rd] Error in close.connection(p) : ignoring SIGPIPE signal

Andreas Kersting r-deve| @end|ng |rom @ker@t|ng@de
Fri Dec 6 08:04:53 CET 2019


Hi Benjamin,

you cannot pipe to echo, since it does not read from stdin. 

echo just echos is first arg, i.e. echo /dev/stdin > /dev/null will echo the string "/dev/stdin"to /dev/stdout, which is redirected to /dev/null.

Try 

p <- pipe("cat > /dev/null", open = "w")

instead.

Regards,
Andreas

2019-12-06 02:46 GMT+01:00 Benjamin Tyner<btyner using gmail.com>:
> Not sure if this is a bug, so posting here first. If I run:
>    cnt <- 0L
>    while (TRUE) {
>        cnt <- cnt + 1L
>        p <- pipe("echo /dev/stdin > /dev/null", open = "w")
>        writeLines("foobar", p)
>        tryCatch(close(p), error = function(e) { print(cnt); stop(e)})
>    }
> 
> then once cnt gets to around 650, it fails with:
> 
>    [1] 654
>    Error in close.connection(p) : ignoring SIGPIPE signal
> 
> Should I not be using pipe() in this way? Here is my sessionInfo()
> 
>    R version 3.6.0 (2019-04-26)
>    Platform: x86_64-pc-linux-gnu (64-bit)
>    Running under: Ubuntu 18.04.3 LTS
> 
>    Matrix products: default
>    BLAS:   /home/btyner/R360/lib64/R/lib/libRblas.so
>    LAPACK: /home/btyner/R360/lib64/R/lib/libRlapack.so
> 
>    locale:
>     [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C
>     [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8
>     [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8
>     [7] LC_PAPER=en_US.UTF-8       LC_NAME=C
>     [9] LC_ADDRESS=C               LC_TELEPHONE=C
>    [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
> 
>    attached base packages:
>    [1] stats     graphics  grDevices utils     datasets  methods base
> 
>    loaded via a namespace (and not attached):
>    [1] compiler_3.6.0
> 
> Regards,
> Ben
> 
> ______________________________________________
> R-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
> 


More information about the R-devel mailing list