\Header{system}{Invoke a System Command}
\alias{.Platform}{system}
\alias{unix}{system}
\keyword{interface}{system}
\keyword{file}{system}
\keyword{utilities}{system}
\begin{Usage}
\begin{verbatim}
system(command, intern = FALSE, ignore.stderr = FALSE)
.Platform
\end{verbatim}
\end{Usage}
\begin{Arguments}
\begin{ldescription}
\item[\texttt{command}] the system command to be invoked, as a string.
\item[\texttt{intern}] a logical, indicates whether to make the output of the
command an \R\ object.
\item[\texttt{ignore.stderr}] a logical indicating whether error messages (written
to \file{stderr}) should be ignored.  This probably only affects
Unix-like systems and is ignored otherwise.
\end{ldescription}
\end{Arguments}
\begin{Description}
\texttt{system} invokes the system command specified by \texttt{command}.

\texttt{.Platform} is a list with functions and variables as
components.  This provides a possibility to write OS portable \R
code.  However, this interface is still experimental.\end{Description}
\begin{Details}
If \texttt{intern} is \texttt{TRUE} then \texttt{popen} is used to invoke the
command and the output collected, line by line, into an \R
\texttt{\Link{character}} vector which is returned as the value of
\texttt{system}.  If \texttt{intern} 
is \texttt{FALSE} then the C function \texttt{system} is used to invoke
the command and the value returned by \texttt{system} is the exit
status of this function.  This function provides users with
the ability to invoke system commands on whatever platform they
are using.

\texttt{unix} is a \emph{deprecated} alternative, available for some
backwards compatibility reasons.\end{Details}
\begin{Examples}
\begin{ExampleCode}
# list all files in the current directory using the -F flag
system("ls -F")

# t1 contains a vector of strings, each one
# representing a separate line of output from who
t1 <- system("who", TRUE)

system("ls fizzlipuzzli",TRUE,TRUE)# empty since file doesn't exist
\end{ExampleCode}
\end{Examples}

