Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
system(3C)							    system(3C)

       system -	issue a	shell command

       #include	<stdlib.h>

       int system(const	char *string);

       The  system() function causes string to be given	to the shell as	input,
       as if string had	been typed as a	command	at  a  terminal.  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, system() returns a non-zero
       value; otherwise, it returns 0.	The standard to	which the caller  con-
       forms determines	which shell is used. See standards(5).

       The  system() function executes vfork(2)	to create a child process that
       in turn invokes one of the exec family of functions  (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.

       The system() function fails if:

       EAGAIN	       The system-imposed limit	on the total  number  of  pro-
		       cesses  under  execution	 by  a	single	user  would be

       EINTR	       The system() function was interrupted by	a signal.

       ENOMEM	       The new process requires	more memory than is available.

       The system() function  manipulates  the	signal	handlers  for  SIGINT,
       SIGQUIT,	 and  SIGCHLD.	It is therefore	not safe to call system() 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 multiple threads. See popen(3C) for	 an  alternative  to  system()
       that is thread-safe.

       See attributes(5) for descriptions of the following attributes:

       |      ATTRIBUTE	TYPE	     |	    ATTRIBUTE VALUE	   |
       |Interface Stability	     |Standard			   |
       |MT-Level		     |Unsafe			   |

       ksh(1),	  sh(1),    exec(2),	vfork(2),    popen(3C),	  waitpid(3C),
       attributes(5), standards(5)

				  18 Dec 2003			    system(3C)


Want to link to this manual page? Use this URL:

home | help