Disponible la nueva versión "donationware" 7.3 de OrganiZATOR
Descubre un nuevo concepto en el manejo de la información.
La mejor ayuda para sobrevivir en la moderna jungla de datos la tienes aquí.

Curso C++

[Home]  [Inicio]  [Índice]


9.6  Llamadas al Sistema


  En ocasiones es necesario realizar alguna llamada al sistema desde un programa C++.  Por ejemplo, para iniciar otro programa; un proceso por lotes, etc.  Aunque el Estándar C++ no dispone de esta utilidad, la mayoría de los compiladores cuentan con una función que permite invocar al intérprete de comandos CLI ("Command Line Interpreter") desde el interior de un programa.

Tanto los compiladores Borland C++ 5.5 como MS Visual C++ 6.0 disponen de la función system() que permite realizar llamadas al sistema (consulte el manual del compilador).  En el siguiente ejemplo se muestra un programa que construye un fichero de texto contenido.txt con los datos de los ficheros *.htm de un cierto directorio.

Observe la secuencia de escape \\ ( 3.2.3e) utilizada para indicar el carácter \.

// Ejemplo de invocación al Sistema

int main()       // ============

   system("dir D:\\ZWeb\\ZatorH\\Cpp\\*.htm > contenido.txt");
   return 0;
}

Contenido (parcial) del fichero obtenido al ejecutar el programa anterior en un sistema Windows:


 El volumen de la unidad D no tiene etiqueta
 El n£mero de serie del volumen es 3150-1004
 Directorio de D:\ZWeb\ZatorH\Cpp

E0_1     HTM        40.475  30/06/03  18:11 E0_1.htm
E0_1w1   HTM         3.159  27/06/03  12:52 E0_1w1.htm
E0_2     HTM        45.363  12/07/03  12:12 E0_2.htm
E0_3     HTM         2.312  30/06/03  18:21 E0_3.htm
E0_I     HTM        17.010  02/07/03  23:53 E0_I.htm
E0_Iw1   HTM         3.739  30/06/03  18:38 E0_Iw1.htm
E0_Iw2   HTM         3.889  30/06/03  18:24 E0_Iw2.htm
E0_P     HTM        10.585  30/06/03  18:25 E0_P.htm
...

E4_11~26 HTM         7.338  04/07/03 9:59 E4_11_2a3.htm
E4_11~27 HTM        66.172  16/07/03 0:52 E4_11_2b-1.htm

       403 archivos 7.491.668 bytes
         0 directorios 1.402.118.144 bytes libres


  Si realizamos aplicaciones de consola desde un entorno gráfico como Windows (como los ejercicios que se proponen en este manual), puede ser buena idea terminar la función main con una llamada al sistema pidiendo que espere.  De esta forma garantizamos que la ventana no se cerrará al terminar la ejecución, dándonos tiempo para ver los resultados. Hay dos posibilidades:

#include <iostream>

int main(int argc, char *argv[]) {
    ...

    system("PAUSE");  // -> Presione cualquier tecla para continuar . . .
    return EXIT_SUCCESS;
}

 

#include <iostream>
#include <stdio.h>

int main(int argc, char *argv[]) {
    ...
    std::cout << "Pulsar INTRO para terminar" << std::endl;
    getchar ();
    return EXIT_SUCCESS;
}