Namespaces
Variants

cpp/utility/program/system: Difference between revisions

From cppreference.com
m s/NULL/null, and made the example output that file it created
link to WEXITSTATUS (prompted by http://stackoverflow.com/questions/33310221)
Line 18: Line 18:


===Notes===
===Notes===
Related POSIX function [http://pubs.opengroup.org/onlinepubs/9699919799/functions/popen.html popen] makes the output generated by {{tt|command}} available to the caller.
Related POSIX function [http://pubs.opengroup.org/onlinepubs/9699919799/functions/popen.html popen] makes the output generated by {{tt|command}} available to the caller.



Revision as of 15:18, 4 November 2015

 
 
Utilities library
General utilities
Relational operators (deprecated in C++20)
 
 
Defined in header <cstdlib>
int system( const char* command );

Calls the host environment's command processor (/bin/sh, cmd.exe, command.com) 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 host environment has a command processor and returns nonzero value only if the command processor exists.

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

Return value

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

Notes

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

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

Example

#include <cstdlib>
#include <fstream>
#include <iostream>

int main()
{
    std::system("ls -l >test.txt"); // execute the UNIX command "ls -l >test.txt"
    std::cout << std::ifstream("test.txt").rdbuf();
}

Possible output:

total 16
-rwxr-xr-x 1 2001 2000 8859 Sep 30 20:52 a.out
-rw-rw-rw- 1 2001 2000  161 Sep 30 20:52 main.cpp
-rw-r--r-- 1 2001 2000    0 Sep 30 20:52 test.txt

See also

C documentation for system