Está en la página 1de 2

¿Qué hacen exactamente las funciones exec?

permite crear un proceso que ejecuta un código distinto al del padre. Si no existiera el
fork y el exec, siempre estaría ejecutándose el proceso init, porque el resto serían
simplemente hijos de él.

Funciones:

execl, execlp, execle, execv, execvp - ejecutan un fichero.

El const char *arg y puntos suspensivos siguientes en las execl, y execle pueden ser
contemplados como arg0, arg1, ..., argn. Todos juntos, describen una lista de uno o
más punteros a cadenas de caracteres terminadas en cero, que representan la lista de
argumentos disponible para el programa ejecutado.

Las funciones execv y execvp proporcionan un vector de punteros a cadenas de


caracteres en cero, que representan la lista de argumentos disponible para el nuevo
programa.

La función execle también especifica el entorno del proceso ejecutado mediante


un parámetro adicional que va detrás del puntero NULL que termina la lista de
argumentos de la lista de parámetros o el puntero al vector argv.

Las funciones execlp y execvp duplicarán las acciones del shell al buscar un fichero
ejecutable si el nombre de fichero especificado no contiene un carácter de barra
inclinada (/). El camino de búsqueda es el especificado en el entorno por la variable
PATH.

¿Qué significa o qué indica la letra 'p' en las funciones exec que la inclute? ¿Qué
diferencia hay con las que no la incluyen?

Las llamadas con p en el nombre buscan la variable de entorno PATH para encontrar el
programa si no tiene un directorio (es decir, no contiene un carácter /). De lo contrario,
el nombre del programa siempre se trata como una ruta al ejecutable.

¿Porqué algunas funciones tienen una letra 'l' y otras una 'v'? ¿Qué hay de
diferencia entre estas funciones? ¿Hay diferencias en cuánto al resultado
obtenido?

 Las llamadas con v en el nombre toman un parámetro de matriz para especificar


la matriz argv[] del nuevo programa.

 Las llamadas con l en el nombre llevan los argumentos del nuevo programa
como una lista de argumentos de longitud variable a la función misma.

¿Cuál es la diferencia entre fork y las funciones exec?


 La llamada del sistema FORK () se usa para crear una copia exacta es el
proceso secundario y el proceso de ejecución es el proceso principal. Mientras
que, la llamada del sistema EXEC () se usa para reemplazar una imagen de
proceso con una nueva imagen de proceso.

 En FORK () la llamada al sistema del padre e hijo se ejecutan al mismo tiempo.


Pero en la llamada del sistema EXEC (), si el reemplazo de la imagen del
proceso tiene éxito, el control no vuelve a donde se llamaba la función EXEC,
más bien ejecutará el nuevo proceso. El control solo será transferido si hay
algún error.

También podría gustarte