[Rd] Reading exit code of pipe()
Tim Keitt
tkeitt at gmail.com
Thu May 14 18:16:15 CEST 2015
Not sure if it helps for your use case, but I have an experimental package
for controlling bidirectional pipe streams from R. Just thought I'd mention
it. Its at
https://github.com/thk686/pipestreamr
THK
On Thu, May 14, 2015 at 9:30 AM, William Dunlap <wdunlap at tibco.com> wrote:
> The difference in the return value of close(pipeConnectionObject)
> seems to depend on whether the pipe connection was opened via
> the pipe() or open() functions (close() returns NULL)
> > con <- pipe("ls")
> > open(con, "r")
> > readLines(con, n=1)
> [1] "1032.R"
> > print(close(con))
> NULL
> > con <- pipe("ls", "r")
> > scan(con, n=1, what="")
> Read 1 item
> [1] "1032.R"
> > print(close(con))
> NULL
> or via something like readLines() or scan() (close() returns status
> integer).
> > con <- pipe("ls")
> > scan(con, n=1, what="")
> Read 1 item
> [1] "1032.R"
> > print(close(con))
> [1] 36096
> > sprintf("0x%x", .Last.value)
> [1] "0x8d00"
>
>
>
>
>
>
> Bill Dunlap
> TIBCO Software
> wdunlap tibco.com
>
> On Wed, May 13, 2015 at 10:27 PM, Kevin Ushey <kevinushey at gmail.com>
> wrote:
>
> > 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
> >
> > ______________________________________________
> > R-devel at r-project.org mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-devel
> >
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>
--
Timothy H. Keitt
http://www.keittlab.org/
[[alternative HTML version deleted]]
More information about the R-devel
mailing list