NAME
system
—
pass a command to the shell
SYNOPSIS
#include
<stdlib.h>
int
system
(const
char *string);
DESCRIPTION
The
system
()
function hands the argument string to the command
interpreter sh(1). The calling process waits for the shell to finish executing
the command, ignoring SIGINT
and
SIGQUIT
, and blocking
SIGCHLD
.
If string is
NULL
,
system
()
will return non-zero. Otherwise, system
() returns
the termination status of the shell in the format specified by
waitpid(2).
Note that fork handlers established using
pthread_atfork(3) are not called when a multithreaded program
calls
system
().
RETURN VALUES
If a child process cannot be created, or the termination status of
the shell cannot be obtained, system
() returns -1
and sets errno to indicate the error. If execution of
the shell fails, system
() returns the termination
status for a program that terminates with a call of
exit
(127).
SEE ALSO
STANDARDS
The system
() function conforms to
ANSI X3.159-1989 (“ANSI C89”)
and IEEE Std 1003.2-1992
(“POSIX.2”).
HISTORY
The system
() function first appeared in
Version 6 AT&T UNIX.
CAVEATS
Never supply the system
() function with a
command containing any part of an unsanitized user-supplied string. Shell
meta-characters present will be honored by the
sh(1)
command interpreter.