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