blob: 9bb24714924b98932554de92c9f3c47f662b885c [file] [log] [blame]
% File src/library/base/man/rawConnection.Rd
% Part of the R package, https://www.R-project.org
% Copyright 1995-2008 R Core Team
% Distributed under GPL 2 or later
\name{rawConnection}
\alias{rawConnection}
\alias{rawConnectionValue}
\title{Raw Connections}
\description{
Input and output raw connections.
}
\usage{
rawConnection(object, open = "r")
rawConnectionValue(con)
}
\arguments{
\item{object}{character or raw vector. A description of the connection.
For an input this is an \R raw vector object, and for an output
connection the name for the connection.
}
\item{open}{character. Any of the standard connection open modes.}
\item{con}{An output raw connection.}
}
\details{
An input raw connection is opened and the raw vector is copied
at the time the connection object is created, and \code{close}
destroys the copy.
An output raw connection is opened and creates an \R raw vector
internally. The raw vector can be retrieved \emph{via}
\code{rawConnectionValue}.
If a connection is open for both input and output the initial raw
vector supplied is copied when the connections is open
}
\value{
For \code{rawConnection}, a connection object of class
\code{"rawConnection"} which inherits from class \code{"connection"}.
For \code{rawConnectionValue}, a raw vector.
}
\note{
As output raw connections keep the internal raw vector up to date
call-by-call, they are relatively expensive to use (although
over-allocation is used), and it may be better to use an anonymous
\code{\link{file}()} connection to collect output.
On (rare) platforms where \code{vsnprintf} does not return the needed length
of output there is a 100,000 character limit on the length of line for
output connections: longer lines will be truncated with a warning.
}
\seealso{
\code{\link{connections}}, \code{\link{showConnections}}.
}
\examples{
zz <- rawConnection(raw(0), "r+") # start with empty raw vector
writeBin(LETTERS, zz)
seek(zz, 0)
readLines(zz) # raw vector has embedded nuls
seek(zz, 0)
writeBin(letters[1:3], zz)
rawConnectionValue(zz)
close(zz)
}
\keyword{file}
\keyword{connection}