From kevinushey at gmail.com  Thu May 14 07:27:23 2015
From: kevinushey at gmail.com (Kevin Ushey)
Date: Wed, 13 May 2015 22:27:23 -0700
Subject: [Rd] Reading exit code of pipe()
In-Reply-To: <CABFfbXv7OzDSt3n9HwkG3Oat0sH3t47LYQZT7ja7QBJQOY9sGw@mail.gmail.com>
References: <CABFfbXv7OzDSt3n9HwkG3Oat0sH3t47LYQZT7ja7QBJQOY9sGw@mail.gmail.com>
Message-ID: <CAJXgQP3TH2xmyhBCoOow9XzxXzQdvAL0RnLCof8=zd1s1kLXQw@mail.gmail.com>

Hi Jeroen,

I think `pipe` might just be returning the status code of the
underlying command executed; for example, I get a status code of '0'
when I test a pipe on `ls`:

    conn <- pipe("ls")
    stream <- readLines(conn)
    print(close(conn))

Similarly, I get an error code if I try to `ls` a non-existent
directory (512 in my case), e.g.

    conn <- pipe("ls /no/path/here/sir")
    stream <- readLines(conn)
    print(close(conn))

So maybe `cat` just doesn't set a status code, and so there's nothing
for R to forward back (ergo -- NULL)?

Kevin

On Wed, May 13, 2015 at 5:24 PM, Jeroen Ooms <jeroen.ooms at stat.ucla.edu> wrote:
> Is there a way to get the status code of a pipe() command? The
> documentation suggests that it might be returned by close, however
> this does not seem to be the case.
>
>   con <- pipe("cat /etc/passwd", "r")
>   stream <- readLines(con, n = 10)
>   err <- close(con)
>   print(err)
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel



[Rd] Reading exit code of pipe()
Kevin Ushey