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.


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

Return value

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


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.


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


  • 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

See also

C++ documentation for system

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.