[R] pipe and binary i/o (on Linux)

Huntsinger, Reid reid_huntsinger at merck.com
Tue Aug 6 16:07:25 CEST 2002


Thanks very much, Professor Ripley. 

Reid Huntsinger





-----Original Message-----
From: ripley at stats.ox.ac.uk [mailto:ripley at stats.ox.ac.uk]
Sent: Tuesday, August 06, 2002 3:00 AM
To: Huntsinger, Reid
Cc: r-help at stat.math.ethz.ch
Subject: Re: [R] pipe and binary i/o (on Linux)


On Mon, 5 Aug 2002 ripley at stats.ox.ac.uk wrote:

> pipe predates readBin, and no one has seen a reason to do this before you.

However, gzfile should work, and bzfile *always* opens with "rb".  Here's
an example on RH7.2:

> zz <- gzfile("testbin.gz", "wb")
> writeBin(1:10, zz)
> close(zz)
> zz <- gzfile("testbin.gz", "rb")
> readBin(zz, integer(), 4)
[1] 1 2 3 4
> readBin(zz, integer(), 6)
[1]  5  6  7  8  9 10
> close(zz)
> zz <- pipe("gzcat testbin.gz", "rb")
Error in pipe("gzcat testbin.gz", "rb") : unable to open connection
In addition: Warning message:
cannot open cmd `gzcat testbin.gz'

so pipe has problems, as on Linux popen does not respect "rb" (although on
other platforms it seems to).

> It's an adequate fix.

On Linux, that is: Windows needs the "b".  I've put a full fix in R-devel.

>
> On Mon, 5 Aug 2002, Huntsinger, Reid wrote:
>
> > I often want to use "pipe" with "readBin" to read (binary) data from the
> > standard output of a Perl or C program. For that I need "pipe" to work
with
> > the "open='rb'" option. It never worked for me, and after a look at the
> > connections.c file, I see that in "pipe_open" the mode gets passed
directly
> > to "popen" (I'm using Linux on an Intel machine). Popen doesn't know
"rb"
> > and fails. I modified the pipe function in connection.c to pass only the
> > first character of the mode. This seems to work (fingers crossed). Then
I
> > noticed gzfile has the same problem, but bzfile doesn't, and uses the
same
> > solution as I did for pipe. Can I assume that this is a correct fix? Or
were
> > there reasons that pipe and gzfile wouldn't allow "rb"?
> >
> > Thanks,
> >
> > Reid Huntsinger
>
> [irrelevant message deleted]
>
> --
> Brian D. Ripley,                  ripley at stats.ox.ac.uk
> Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
> University of Oxford,             Tel:  +44 1865 272861 (self)
> 1 South Parks Road,                     +44 1865 272860 (secr)
> Oxford OX1 3TG, UK                Fax:  +44 1865 272595
>
>
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
-.-
> r-help mailing list -- Read
http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
> Send "info", "help", or "[un]subscribe"
> (in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
>
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._.
_._
>

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272860 (secr)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595


------------------------------------------------------------------------------
Notice: This e-mail message, together with any attachments, contains information of Merck & Co., Inc. (Whitehouse Station, New Jersey, USA) that may be confidential, proprietary copyrighted and/or legally privileged, and is intended solely for the use of the individual or entity named on this message.  If you are not the intended recipient, and have received this message in error, please immediately return this by e-mail and then delete it.

==============================================================================

-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._



More information about the R-help mailing list