Comandos de shell shell: execlp (" sh ", " sh ", " filename ", (char *) 0);
exec reemplaza completamente la imagen del programa que lo llamó con el programa ejecutado. Fork crea un nuevo proceso y genera un nuevo PID. Exec inicia un nuevo programa y reemplaza el proceso original. Por lo tanto, el PID del nuevo proceso ejecutado por exec no cambiará, al igual que el proceso de llamar a exec.
int exec … Carga y ejecuta otros programas: int execl (char * pathname, char * arg0, char * arg1, ..., char * argn, NULL) int execle (char * pathname, char * Arg0, char * arg1, ..., char * argn, NULL, char * envp []) int execlp (char * pathname, char * arg0, char * arg1, ..., NULL) int execlpe (char * pathname, Char * arg0, char * arg1, ..., NULL, char * envp []) int execv (char * nombre de ruta, char * argv []) int execve (char * nombre de ruta, char * argv [], char * envp [ ,null,null,3],]) int execvp (char * pathname, char * argv []) int execvpe (char * pathname, char * argv [], char * envp []) La familia de funciones exec carga y ejecuta el programa pathname y establece el argumento arg0 (arg1 , arg2, argv [], envp []) pasado a la subrutina, el error devuelve -1 en la familia de funciones exec, el sufijo l, v, p, e se agrega a la exec, la función especificada tendrá alguna capacidad operativa Cuando el sufijo es p, la función puede usar la variable PATH de DOS para encontrar el archivo de subrutina. Si desea ejecutar el comando /bin /cat /etc /passwd /etc /group, desea recibir una lista de argumentos separados por comas, con el puntero NULL como el marcador de final execl (" /bin /cat ", " /Etc /pass ", " /etc /group " NULL); v, desea recibir un puntero a una matriz de cadena terminada en NULL char * argv [] = {{quot /quot /bin /cat ", " Etc /pass ", " /etc /group ", NULL} execv (" /bin /cat ", argv); e, la función pasa el parámetro especificado envp, lo que permite cambiar el entorno del proceso hijo, sin el sufijo e El proceso utiliza el entorno del programa actual. Envp también es un puntero de matriz de cadena terminada en NULL execl (archivo de ejecución) relacionadas con las funciones fork, execle, execcl, execv, execve, execvp header file # include < unistd.h > define la función int execl (const char * path, const Char * arg, ....); Descripción de la función execl () se utiliza para ejecutar la ruta del archivo representada por la cadena de ruta del parámetro. El siguiente parámetro representa el argv pasado (0), argv [1] y hellip cuando se ejecuta el archivo.; …, el último argumento debe terminar con un puntero nulo (NULL). El valor de retorno no se devolverá si la ejecución es exitosa. Si la ejecución falla, devolverá directamente -1. El motivo de la falla se almacena en errno. Ejemplo # incluye < unistd.h > main () {execl (" /bin /ls ", " ls ", " -al ", " /etc /passwd ", (char *) 0); Execute /* Ejecutar /bin /ls -al /etc /passwd * /- rw-r - r-- 1 root root 705 Sep 3 13: 52 /etc /passwd
execlp (de la variable de entorno PATH Busque el archivo y ejecute) las funciones relacionadas fork, execl, execle, execv, execve, execvp header file # include < unistd.h > define function int execlp (const char * file, const char * arg, … …); Explique que execlp () buscará el nombre de archivo que coincida con el archivo de parámetros del directorio al que apunta la variable de entorno PATH. Después de que se encuentre el nombre del archivo, se ejecutará el archivo, y los parámetros segundo y subsiguientes se tratarán como argv [0], argv [1] del archivo. … …, el último argumento debe terminar con un puntero nulo (NULL). Valor de retorno Si la ejecución es exitosa, la función no regresará. Si la ejecución falla, devolverá directamente -1. El motivo de la falla se almacena en errno. El código de error se refiere a execve (). Ejemplo /* Ejecutando ls -al /etc /passwd execlp () encontrará /bin /ls * /# include < unistd.h > main () {execlp (" ls ", " ls &") dependiendo de /bin en la variable PATH;, " -al ", " /etc /passwd ", (char *) 0);} Ejecutar -rw-r - r-- 1 root root 705 Sep 3 13: 52 /etc /passwd
execv (archivo de ejecución) relacionadas con las funciones fork, execl, execle, execcl, execve, execvp header file # include < unistd.h > define función int execv (const char * path, char * const argv []); función El método execv () se utiliza para ejecutar la ruta del archivo representado por la cadena de ruta del parámetro. La diferencia con execl () es que execve () requiere solo dos parámetros, y el segundo parámetro se pasa al archivo ejecutable utilizando el puntero de matriz. Valor de retorno Si la ejecución es exitosa, la función no regresará. Si la ejecución falla, devolverá directamente -1. El motivo de la falla se almacena en errno. Por favor, consulte execve () para el código de error. Ejemplo /* Ejecutar /bin /ls -al /etc /passwd * /# include < unistd.h > main () {char * argv [] = {" ls ", " -al ", " /etc /Passwd ", (char *)}}; execv (" /bin /ls ", argv);} Ejecutar -rw-r - r-- 1 root root 705 Sep 3 13: 52 /etc /passwd
execve (ejecutar archivo) funciones relacionadas fork, execl, execle, execcl, execv, execvp encabezado archivo # include < unistd.h > define función int execve (const char * filename, char * const argv [], char * Const envp []); la descripción de la función execve () se usa para ejecutar la ruta del archivo representada por la cadena de nombre de archivo del parámetro, el segundo parámetro se pasa al archivo ejecutable utilizando el puntero de matriz, argv se pasa a la lista completa de parámetros del programa, incluido [0], que generalmente es el nombre del programa en ejecución, el último parámetro es una matriz de nuevas variables de entorno pasadas al archivo ejecutable. Valor de retorno Si la ejecución es exitosa, la función no regresará. Si la ejecución falla, devolverá directamente -1. El motivo de la falla se almacena en errno. Código de error EACCES1. El archivo a ejecutar no tiene los permisos ejecutables por el usuario. 2. El sistema de archivos al que pertenece el archivo a ejecutar está colgado en modo noexec. 3. El archivo o el traductor de script que se ejecutará no es un archivo general.
de Garbled (diamante, cuadrado) Debido a que la instalación de debian utiliza una instalación mínim
La cola de espera en el kernel de Linux tiene muchos usos para el manejo de interrupciones, sincroni
arranque sin disco, todo el mundo debería haber oído hablar de él, y ahora muchos cafés de Internet
Hay una escena de este tipo cuando escribimos el shell: Por ejemplo: quiero hacer una copia de seg
Aprendizaje completo del script de shell de Linux
Resumen de aprendizaje de la comunicación entre
Cómo eliminar el antiguo kernel del sistema Ubuntu Linux
Administración y mantenimiento de sistemas Linux - comando dd
Análisis de comparación select /poll /epoll
El archivo de copia de seguridad del comando lftp de CentOS Linux
Interpretación del comando Linux VI
Tutorial básico de configuración de red bajo LINUX
Ecmal añadir tiendas a granel (incluyendo la zonificación y permisos)
¿Cómo configurar la tarjeta de red inalámbrica bajo el sistema linux?
El servicio de perfiles de usuario no pudo iniciar sesión en
Windows 8 entra automáticamente en el escritorio después de arrancar
Win7 código de error del sistema 0x80004005 cómo resolver
La barra de tareas de Win7 es fácil de jugar
Rompiendo el límite de conexión del cliente IIS
En clase, las actividades en el aula de Tencent inician sesión para dirigir QB
El mouse de Win7 no escucha la respuesta rápida o lenta como resolver
La poco conocida característica de encriptación de la unidad flash win7
WinXP, Win7, computadora del sistema Win8 vea el método de dirección IP local gráfico tutorial
Win7 instalar hermana super simple puede convertirse en un autor experto en informática
Captura de pantalla de vista previa de Win9 nuevamente expuesta Mostrar más detalles