MyWebUniversity.com Home Page
 



OpenSolaris man pages main menu


Standard C Library Functions                           system(3C)



NAME
     system - issue a shell command

SYNOPSIS
     #include 

     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(3C).


     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.
     The  standard  to which the caller conforms determines which
     shell is used. See standards(5).


     The system() function sets the SIGINT and SIGQUIT signals to
     be  ignored,  and  blocks the SIGCHLD signal for the calling
     thread, while waiting for the command to terminate. The sys-
     tem() function does not affect the termination status of any
     child of the calling processes other  than  the  process  it
     creates.


     The termination status of the process created  by  the  sys-
     tem()  function  is  not  affected  by  the actions of other
     threads in the calling process (it is invisible to wait(3C))
     or  by  the disposition of the SIGCHLD signal in the calling
     process, even if it is set to be ignored. No SIGCHLD  signal
     is  sent  to  the process containing the calling thread when
     the command terminates.

RETURN VALUES
     The system() function executes posixspawn(3C) to  create  a
     child  process  running  the shell that in turn executes the
     commands in string. If posixspawn() fails, system() returns
     -1  and sets errno to indicate the error; otherwise the exit
     status of the shell is returned.

ERORS
     The system() function may set errno values as  described  by
     fork(2), in particular:





SunOS 5.11          Last change: 14 Dec 2006                    1






Standard C Library Functions                           system(3C)



     EAGAIN    A resource control or  limit on the  total  number
               of   processes, tasks or LWPs under execution by a
               single user,  task,  project, or   zone  has  been
               exceeded,  or  the  total  amount of system memory
               available  is temporarily insufficient  to  dupli-
               cate this process.


     ENOMEM    There is not enough swap space.


     EPERM     The  {PRIVPROCFORK} privilege is   not  asserted
               in the effective set of the calling process.


USAGE
     The system() function manipulates the  signal  handlers  for
     SIGINT  and  SIGQUIT.  It is therefore not safe to call sys-
     tem() in a multithreaded process, since  some  other  thread
     that  manipulates  these  signal  handlers and a thread that
     concurrently calls system() can interfere with each other in
     a  destructive manner.  If, however, no such other thread is
     active, system() can safely be called concurrently from mul-
     tiple  threads. See popen(3C) for an alternative to system()
     that is thread-safe.

ATRIBUTES
     See attributes(5) for descriptions of the  following  attri-
     butes:



     
           ATRIBUTE TYPE               ATRIBUTE VALUE       
    
     Interface Stability          Standard                    
    
     MT-Level                     Unsafe                      
    


SEE ALSO
     ksh(1),   sh(1),   popen(3C),   posixspawn(3C),   wait(3C),
     waitpid(3C), attributes(5), standards(5)











SunOS 5.11          Last change: 14 Dec 2006                    2



OpenSolaris man pages main menu

Contact us      |       About us      |       Term of use      |       Copyright © 2000-2010 MyWebUniversity.com ™