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 ex-

       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 in-
       terfere 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

       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),  at-
       tributes(5), standards(5)

				  18 Dec 2003			    system(3C)


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

home | help