blob: 6bb62d73b7aef34be3971985d8a06dedc680d96b [file] [log] [blame]
% File src/library/base/man/showConnections.Rd
% Part of the R package, https://www.R-project.org
% Copyright 1995-2018 R Core Team
% Distributed under GPL 2 or later
\name{showConnections}
\alias{showConnections}
\alias{getConnection}
\alias{getAllConnections}
\alias{closeAllConnections}
\alias{stdin}
\alias{stdout}
\alias{stderr}
\alias{nullfile}
\alias{isatty}
\title{Display Connections}
\description{
Display aspects of \link{connections}.
}
\usage{
showConnections(all = FALSE)
getConnection(what)
closeAllConnections()
stdin()
stdout()
stderr()
nullfile()
isatty(con)
}
\arguments{
\item{all}{logical: if true all connections, including closed ones
and the standard ones are displayed. If false only open user-created
connections are included.}
\item{what}{integer: a row number of the table given by
\code{showConnections}.}
\item{con}{a connection.}
}
\details{
\code{stdin()}, \code{stdout()} and \code{stderr()} are standard
connections corresponding to input, output and error on the console
respectively (and not necessarily to file streams). They are text-mode
connections of class \code{"terminal"} which cannot be opened or
closed, and are read-only, write-only and write-only respectively.
The \code{stdout()} and \code{stderr()} connections can be
re-directed by \code{\link{sink}} (and in some circumstances the
output from \code{stdout()} can be split: see the help page).
The encoding for \code{\link{stdin}()} when redirected can
be set by the command-line flag \option{--encoding}.
\code{nullfile()} returns filename of the null device (\code{"/dev/null"}
on Unix, \code{"nul:"} on Windows).
\code{showConnections} returns a matrix of information. If a
connection object has been lost or forgotten, \code{getConnection}
will take a row number from the table and return a connection object
for that connection, which can be used to close the connection,
for example. However, if there is no \R level object referring to the
connection it will be closed automatically at the next garbage
collection (except for \code{\link{gzcon}} connections).
\code{closeAllConnections} closes (and destroys) all user
connections, restoring all \code{\link{sink}} diversions as it does
so.
\code{isatty} returns true if the connection is one of the class
\code{"terminal"} connections and it is apparently connected to a
terminal, otherwise false. This may not be reliable in embedded
applications, including GUI consoles.
}
\note{
\code{stdin()} refers to the \sQuote{console} and not to the C-level
\file{stdin} of the process. The distinction matters in GUI consoles
(which may not have an active \file{stdin}, and if they do it may not
be connected to console input), and also in embedded applications.
If you want access to the C-level file stream \file{stdin}, use
\code{\link{file}("stdin")}.
When \R is reading a script from a file, the \emph{file} is the
\sQuote{console}: this is traditional usage to allow in-line data (see
\sQuote{An Introduction to R} for an example).
}
\value{
\code{stdin()}, \code{stdout()} and \code{stderr()} return connection
objects.
\code{showConnections} returns a character matrix of information with
a row for each connection, by default only for open non-standard connections.
\code{getConnection} returns a connection object, or \code{NULL}.
}
\seealso{\code{\link{connections}}}
\examples{
showConnections(all = TRUE)
\dontrun{
textConnection(letters)
# oops, I forgot to record that one
showConnections()
# class description mode text isopen can read can write
#3 "letters" "textConnection" "r" "text" "opened" "yes" "no"
mycon <- getConnection(3)
}
c(isatty(stdin()), isatty(stdout()), isatty(stderr()))
}
\keyword{connection}