< c‎ | program
Defined in header <stdlib.h>
int system( const char *command );

Calls the host environment's command processor with the parameter command. Returns an implementation-defined value (usually the value that the invoked program returns).

If command is a null pointer, checks if the host environment has a command processor and returns a nonzero value if and only if the command processor exists.


[edit] Parameters

command - character string identifying the command to be run in the command processor. If a null pointer is given, command processor is checked for existence

[edit] Return value

Implementation-defined value. If command is a null pointer, returns a nonzero value if and only if the command processor exists.

[edit] Notes

On POSIX systems, the return value can be decomposed using WEXITSTATUS and WSTOPSIG.

The related POSIX function popen makes the output generated by command available to the caller.

[edit] Example

In this example there is a system call of the unix command date +%A and a system call to (possibly installed) gcc compiler with command-line argument (--version):

#include <stdlib.h>
int main(void) {
    system("date +%A");
    system("gcc --version");

Possible output:

gcc (GCC) 11.2.0

[edit] References

  • C17 standard (ISO/IEC 9899:2018):
  • The system function (p: 257)
  • C11 standard (ISO/IEC 9899:2011):
  • The system function (p: 353-354)
  • C99 standard (ISO/IEC 9899:1999):
  • The system function (p: 317)
  • C89/C90 standard (ISO/IEC 9899:1990):
  • The system function

[edit] See also