system(3S)                                                          system(3S)


NAME
     system - issue a shell command

SYNOPSIS
     #include <stdlib.h>

     int system (const char *string);

DESCRIPTION
     system causes the string to be given to the shell [see sh(1)] as input,
     as if the string had been typed as a command at a terminal.  The current
     process waits until the shell has completed, then returns the exit status
     of the shell in the format specified by waitpid(2).  The system function
     ignores the SIGINT and SIGQUIT signals, and blocks the SIGCHLD signal,
     while waiting for the command to terminate.

     If string is a NULL pointer, system checks if /sbin/sh exists and is
     executable.  If /sbin/sh is available, system returns non-zero; otherwise
     it returns zero.

     system fails if one or more of the following are true:

     EAGAIN      The system-imposed limit on the total number of processes
                 under execution by a single user would be exceeded.

     EINTR       system was interrupted by a signal.

     ENOMEM      The new process requires more memory than is allowed by the
                 system-imposed maximum MAXMEM.

SEE ALSO
     exec(2), waitpid(2), sh(1).

DIAGNOSTICS
     system forks to create a child process that in turn execs /sbin/sh in
     order to execute string.  If the fork or exec fails, system returns -1
     and sets errno.

NOTES
     Calling system(3S) in a program that is set user ID to root is difficult
     to do without creating unintended security problems.  For example, since
     system invokes a copy of sh(1) to execute the supplied command, the
     programmer must be extremely careful not to allow critical environment
     variables, such as PATH, which determine the behavior of the shell to be
     passed through from the environment of the invoking user without
     modification.  It is recommended that system(3S) not be used by set user
     ID programs.


                                                                        Page 1