2.4.3. Llamar a otros programas

Mientras que el modo típico de usar un programa que lee de la entrada estándar y escribe en la salida estándar es dentro de un shell script Unix™ o en un fichero batch de DOS™, cualquier programa se puede llamar desde dentro de un programa C o C++ usando la llamada a la función estándar system() que está declarada en el fichero de cabecera <cstdlib>:.

//: C02:CallHello.cpp
// Call another program
#include <cstdlib> // Declare "system()"
using namespace std;

int main() {
  system("Hello");
} ///:~

Listado 2.6. C02/CallHello.cpp


Para usar la función system(), hay que pasarle un array de caracteres con la línea de comandos que se quiere ejecutar en el prompt del sistema operativo. Puede incluir los parámetros que utilizaría en la línea de comandos, y el array de caracteres se puede fabricar en tiempo de ejecución (en vez de usar un array de caracteres estático como se mostraba arriba). El comando se ejecuta y el control vuelve al programa.

Este programa le muestra lo fácil que es usar C plano en C++; sólo incluya la cabecera y utilice la función. Esta compatibilidad ascendente entre el C y el C++ es una gran ventaja si está aprendiendo C++ y ya tenía conocimientos de C.