system(3C)
NAME
system - issue a shell command
SYNOPSIS
#include <stdlib.h>
int system(const char *string);
DESCRIPTION
The system() function causes string to be given to the shell
as input, as if string had been typed as a command at a ter-
minal. The invoker waits until the shell has completed, then
returns the exit status of the shell in the format specified
by waitpid(2).
If string is a null pointer, system() checks if the shell
exists and is executable. If the shell is available, sys-
tem() returns a non-zero value; otherwise, it returns 0. If
the application is standard-conforming (see standards(5)),
system() uses /usr/xpg4/bin/sh (see ksh(1)); otherwise sys-
tem() uses /usr/bin/sh (see sh(1)).
RETURN VALUES
The system() function executes vfork(2) to create a child
process that in turn invokes one of the exec family of func-
tions (see exec(2)) on the shell to execute string. If
vfork() or the exec function fails, system() returns -1 and
sets errno to indicate the error.
ERRORS
The system() function fails if:
EAGAIN
The system-imposed limit on the total number of
processes under execution by a single user would be
exceeded.
EINTR The system() function was interrupted by a signal.
ENOMEM
The new process requires more memory than is avail-
able.
USAGE
The system() function manipulates the signal handlers for
SIGINT, SIGQUIT, and SIGCHLD. For this reason it is not
safe to call system() in a multithreaded process. Concurrent
calls to system() will interfere destructively with the
disposition of these signals, even if they are not manipu-
lated by other threads in the application. See popen(3C) for
a replacement for system() that is thread-safe.
ATTRIBUTES
See attributes(5) for descriptions of the following attri-
butes:
____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|_____________________________|_____________________________|
| MT-Level | Unsafe |
|_____________________________|_____________________________|
SEE ALSO
ksh(1), sh(1), exec(2), vfork(2), waitpid(2), popen(3C),
attributes(5), standards(5)
Man(1) output converted with
man2html