August 2, 2007 SYSTEM 3

### NAME

system - pass a command to the shell

### LIBRARY

Standard C Library (libc, -lc)

### SYNOPSIS

```int` system(```const char *string`)

### DESCRIPTION

The system(``) function hands the argument ```string` to the command interpreter sh(1). The calling process waits for the shell to finish executing the command, ignoring ```SIGINT` and ```SIGQUIT`, and blocking ```SIGCHLD`.

If ```string` is a ```NULL` pointer, system(``) will return non-zero, if the command interpreter is available, or zero if none is available. Otherwise, system(``) returns the termination status of the shell in the format specified by waitpid(2).

### 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 termination status for a program that terminates with a call of exit(```127`).

### SEE ALSO

sh(1), execve(2), waitpid(2), popen(3), shquote(3)

### STANDARDS

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

### 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.