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

FreeBSD Manual Pages

  
 
  

home | help
SYSTEM(3)		    Library Functions Manual		     SYSTEM(3)

NAME
       system -- pass a	command	to the shell

LIBRARY
       Standard	C Library (libc, -lc)

SYNOPSIS
       #include	<stdlib.h>

       int
       system(const char *string);

DESCRIPTION
       The  system()  function hands the argument string to the	command	inter-
       preter sh(1).  The calling process waits	for the	shell to  finish  exe-
       cuting the command, ignoring SIGINT and SIGQUIT,	and blocking SIGCHLD.

       If  string is a NULL pointer, system() will return non-zero if the com-
       mand interpreter	sh(1) is available, and	zero if	it is not.

RETURN VALUES
       The system() function returns the exit status of	the shell as  returned
       by  waitpid(2),	or  -1	if  an error occurred when invoking fork(2) or
       waitpid(2).  If the child process fails to execute the shell,  it  will
       terminate  with	an  exit code of 127 and system	will return the	corre-
       sponding	exit status.

SEE ALSO
       sh(1), execve(2), fork(2), waitpid(2), popen(3),	posix_spawn(3)

STANDARDS
       The system() function conforms to ISO/IEC 9899:1990 ("ISO C90") and  is
       expected	to be IEEE Std 1003.2 ("POSIX.2") compatible.

SECURITY CONSIDERATIONS
       The  system() function is easily	misused	in a manner that enables a ma-
       licious user to run arbitrary command, because all meta-characters sup-
       ported by sh(1) would be	honored.  User supplied	parameters should  al-
       ways be carefully sanitized before they appear in string.

FreeBSD	ports 15.quarterly     February	24, 2026		     SYSTEM(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=system&sektion=3&manpath=FreeBSD+15.1-RELEASE+and+Ports.quarterly>

home | help