c shell system programming tutorial with examples
Este tutorial ofrece una descripción detallada de la llamada de C ++ Shell o system () que se utiliza para invocar el comando del sistema operativo desde un programa C ++.
En el mundo de la programación de software, la mayoría de las API del sistema operativo están dirigidas a C. El lenguaje C ++ proporciona soporte directo para llamar a funciones C desde el código C ++.
Por tanto, en este caso, C ++ también se convierte en un lenguaje de programación del sistema. C ++ proporciona un comando 'system ()' para invocar los comandos del sistema operativo desde el programa C / C ++.
En otras palabras, podemos decir que el comando system () ejecuta un comando de shell de C ++. En este tutorial, discutiremos la ejecución del comando de shell o system () en detalle.
=> Explore la serie de capacitación simple de C ++ aquí.
Lo que vas a aprender:
- Llamadas al sistema C ++
- Pausa del sistema C ++
- Funciones del sistema frente a la biblioteca
- Conclusión
- Lectura recomendada
Llamadas al sistema C ++
Ahora analicemos la llamada al sistema y sus detalles con ejemplos.
Prototipo de función: int system (comando const char *);
Parámetros:
comando => Una cadena C que contiene el comando a ejecutar.
Si se pasa un puntero nulo, solo se realiza una verificación del procesador de comandos.
Valor devuelto: Devuelve un valor int. El valor devuelto depende de si la cadena de estilo C se especifica como un argumento o si se especifica un puntero nulo.
- Puntero nulo => Si se especifica el puntero nulo, devuelve un valor distinto de cero si el procesador de comandos está disponible y cero en caso contrario.
- El comando especificado => Cuando se especifica el comando, generalmente se devuelve el código de estado, pero el valor devuelto depende de la implementación del sistema y la biblioteca.
Descripción: El comando del sistema ejecuta un comando proporcionado como argumento. El valor devuelto al ejecutar el comando generalmente depende de la implementación del sistema y de la biblioteca. Si se pasa un puntero nulo en lugar de un comando, esta llamada simplemente verifica si el procesador de comandos está disponible o no.
La llamada devuelve un valor distinto de cero si el procesador de comandos está disponible y cero en caso contrario.
Usando system (), podemos ejecutar casi cualquier comando siempre que el sistema operativo lo permita. Por ejemplo, podemos ejecutar el sistema ('dir') o el sistema ('ls') con la misma facilidad. De hecho, incluso podemos invocar el compilador GCC desde nuestro programa.
A continuación se enumeran algunos ejemplos de comandos del sistema que se utilizan en C ++ para ejecutar los comandos de shell de C ++.
Ejemplo 1:
Este ejemplo muestra la demostración del comando del sistema con un puntero nulo como argumento.
|_+_|Producción:
En el programa anterior, primero verificamos si el procesador de comandos está disponible pasando nulo a la llamada al sistema. Si el procesador de comandos está disponible, ejecutamos el comando dir. Si el procesador de comandos no está disponible, salimos del programa con una falla.
Ejemplo 2:
El siguiente ejemplo muestra la ejecución del comando ls en el que la salida se envía a un archivo de texto 'output.txt'. Después de que se ejecuta la llamada a system (), imprimimos el contenido del archivo output.txt.
|_+_|Producción:
La salida del programa anterior es el contenido del archivo 'output.txt' que no es más que la salida del comando ls.
Ejemplo 3:
El programa C ++ a continuación es la continuación del ejemplo anterior. Aquí ejecutamos el comando ls que se redirige a output.txt mediante una llamada al sistema. Luego ejecutamos otra llamada al sistema con el comando 'rm' (eliminar) para eliminar el archivo output.txt.
Después de esto, ejecutamos nuevamente el comando ls, y esta vez redirigimos la salida a otro archivo, es decir, text.txt. Finalmente, imprimimos el contenido del archivo text.txt.
|_+_|Producción:
Pausa del sistema C ++
El comando del sistema (“pausa”) detiene temporalmente las operaciones cuando se ejecuta. La llamada al sistema ('pausa') depende del sistema operativo y realiza los siguientes pasos:
- Esta llamada suspende el programa temporalmente y también indica al sistema operativo que abra el shell del sistema operativo.
- El sistema operativo asigna la memoria para que se ejecute el comando.
- Luego desasigna la memoria, sale del sistema operativo y reanuda el programa suspendido.
El siguiente programa muestra un ejemplo de una llamada al sistema ('pausa').
|_+_|Producción:
Como ya se mencionó, la llamada al sistema ('pausa') es muy lenta y depende del sistema operativo. Los pasos mencionados anteriormente son difíciles de ejecutar.
Además, las llamadas al sistema también pueden presentar algunos riesgos de seguridad. Por lo tanto, generalmente no confiamos en las llamadas al sistema (“pausa”) en nuestros programas.
En su lugar, podemos usar cin.get para lograr la misma funcionalidad que un sistema ('pausa') como se muestra en el programa siguiente.
|_+_|Producción:
preguntas y respuestas de la entrevista de prueba de software para experimentados
Como se muestra arriba, podemos usar cin.get para pausar la salida hasta que presionemos alguna tecla. A diferencia del sistema ('pausa') no depende del sistema operativo. Tampoco sigue los pasos que se realizan cuando ejecutamos el sistema (“pausa”).
Funciones del sistema frente a la biblioteca
Las llamadas al sistema dependen del sistema operativo. También son muy lentos y pesados en recursos. Las funciones de la biblioteca no dependen del sistema operativo. Son más rápidos y no consumen demasiados recursos ni memoria.
Los usos más comunes de las llamadas al sistema son los comandos del sistema ('pausa') y del sistema ('cls'). Las funciones de biblioteca son funciones integradas que contienen funciones relacionadas con matemáticas, E / S de archivos, etc.
Conclusión
En este tutorial de Shell de C ++, discutimos varias funciones del sistema. Vimos ejemplos de pasar un puntero nulo a un comando del sistema que verifica si el procesador de comandos está disponible o no. También discutimos el comando del sistema ('pausa') y sus alternativas en detalle.
=> Consulte TODOS los tutoriales de C ++ aquí.
Lectura recomendada
- Orden de Shell en C ++ con ejemplos
- Tutorial de secuencias de comandos de shell de Unix con ejemplos
- Tipos de bucle de shell de Unix: bucle while, bucle for, bucle hasta en Unix
- Ejemplos de operadores aritméticos y booleanos de script de shell de Unix
- Funciones de script de shell de Unix con parámetros y retorno
- Scripting avanzado de Unix Shell: matrices, operadores de prueba de cadenas y archivos, variables especiales
- Tutorial de expresiones regulares de C ++: expresiones regulares en C ++ con ejemplos