system —
pass a command to the shell
Standard C Library (libc, -lc)
#include
<stdlib.h>
int
system(const
char *string);
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
sh(1) is available, and zero if it is not.
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 corresponding exit
status.
The system() function conforms to
ISO/IEC 9899:1990 (“ISO C90”)
and is expected to be IEEE Std 1003.2
(“POSIX.2”) compatible.
The system() function is easily misused in
a manner that enables a malicious user to run arbitrary command, because all
meta-characters supported by
sh(1) would be honored. User supplied parameters should
always be carefully sanitized before they appear in
string.