The easy way to run another program is to use the system
function. This function does all the work of running a subprogram, but
it doesn't give you much control over the details: you have to wait
until the subprogram terminates before you can do anything else.
sh
to run the command.
In particular, it searches the directories in PATH
to find
programs to execute. The return value is -1
if it wasn't
possible to create the shell process, and otherwise is the status of the
shell process. See section Process Completion, for details on how this
status code can be interpreted.
If the command argument is a null pointer, a return value of zero indicates that no command processor is available.
This function is a cancelation point in multi-threaded programs. This
is a problem if the thread allocates some resources (like memory, file
descriptors, semaphores or whatever) at the time system
is
called. If the thread gets canceled these resources stay allocated
until the program ends. To avoid this calls to system
should be
protected using cancelation handlers.
The system
function is declared in the header file
`stdlib.h'.
Portability Note: Some C implementations may not have any
notion of a command processor that can execute other programs. You can
determine whether a command processor exists by executing
system (NULL)
; if the return value is nonzero, a command
processor is available.
The popen
and pclose
functions (see section Pipe to a Subprocess) are closely related to the system
function. They
allow the parent process to communicate with the standard input and
output channels of the command being executed.
Go to the first, previous, next, last section, table of contents.