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

August 2, 2007 | NetBSD 11.0