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

FreeBSD Manual Pages

  
 
  

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

NAME
     system -- pass a command to the shell

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 execut-
     ing the command, ignoring SIGINT and SIGQUIT, and blocking	SIGCHLD.

     If	string is NULL,	system() will return non-zero.	Otherwise, system()
     returns the termination status of the shell in the	format specified by
     waitpid(2).

     Note that fork handlers established using pthread_atfork(3) are not
     called when a multithreaded program calls system().

RETURN VALUES
     If	a child	process	cannot be created, or the termination status of	the
     shell cannot be obtained, system()	returns	-1 and sets errno to indicate
     the error.	 If execution of the shell fails, system() returns the termi-
     nation status for a program that terminates with a	call of	exit(127).

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

STANDARDS
     The system() function conforms to ANSI X3.159-1989	("ANSI C89") and IEEE
     Std 1003.2-1992 ("POSIX.2").

HISTORY
     The system() function first appeared in Version 6 AT&T UNIX.

CAVEATS
     Never supply the system() function	with a command containing any part of
     an	unsanitized user-supplied string.  Shell meta-characters present will
     be	honored	by the sh(1) command interpreter.

     It	is often simpler to bypass the shell and run an	external command using
     fork(2), execlp(3), and waitpid(2)	directly instead of having to sanitize
     a string for shell	consumption.

BSD			       February	5, 2016				   BSD

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | SEE ALSO | STANDARDS | HISTORY | CAVEATS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=system&sektion=3&manpath=OpenBSD+6.5>

home | help