Exec en Función de Argumentos: [SOLUCIONADO]

Funcionamiento del método ‘Exec’

El método ‘Exec‘ permite a un proceso llamar a otro programa para que se ejecute y ocupe su lugar. Normalmente, en un sistema Linux, cuando se ejecuta un nuevo programa, el sistema operativo crea un nuevo proceso y lo carga en memoria. Pero el método ‘Exec’ genera una excepción a esta regla.

Proceso de ‘Exec’

El proceso se inicia cuando un programa en ejecución envía una solicitud al sistema operativo para ejecutar otro programa. En lugar de crear un nuevo proceso como lo haría normalmente, el sistema operativo carga el nuevo programa en la memoria asignada al proceso que realiza la solicitud, y luego el nuevo programa se ejecuta desde allí.

        #include <unistd.h>
        int main() {
        // La función exec() solo regresará algo si hubo un error
        char *args[]={"./echo", NULL};
        execvp(args[0], args);
        }
        

Comprenda cuándo y cómo usar la función ‘Exec’

La característica principal de los métodos ‘Exec’ es que solo regresan si ocurre un error. Esto se debe a que, si la ejecución es exitosa, el programa solicitante ya no existirá porque ha sido reemplazado por el programa que solicitó para su ejecución. En resumidas cuentas, un éxito en la ejecución del programa ‘Exec’ implica la desaparición del proceso original.

        #include <stdio.h>
        #include <unistd.h>
        int main() {
        int i = 0;
        printf("Antes de la función exec: %dn", i);
        i = execvp(args[0], args);
        printf("Después de la función exec: %dn", i);
        return 0;
        }
        

Trabajo con argumentos

Todas las funciones ‘Exec’ comienzan con un argumento que especifica el archivo ejecutable para el nuevo programa. Los argumentos adicionales proporcionan información adicional necesaria para la ejecución del nuevo programa. Estos argumentos se transmiten al nuevo programa en un array de strings terminado en NULL.

Métodos exec en Linux y sus argumentos

Existen seis variantes de la función ‘Exec’ en C, de las cuales tres son esenciales para el manejo de argumentos. Ten en cuenta que los programas en C siempre están conscientes de su propio nombre y pueden acceder a él en cualquier momento.

        int execl(const char *path, const char *arg, ...);
        int execv(const char *path, char *const argv[]);
        int execvp(const char *file, char *const argv[]);
        

Es importante tener en cuenta que los argumentos que se pasan al método ‘Exec’ están en realidad destinados al programa que se está intentando ejecutar y no al propio método ‘Exec’.

Ampliando posibilidades con la función ‘Exec’

Una exploración más profunda de la función ‘Exec’ nos permite ampliar las posibilidades de manejo de argumentos y control, estableciendo nuevas estrategias de optimización de código y rendimiento en sistemas Linux.

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad