Execve
Execve es una llamada al sistema del sistema operativo UNIX, estandarizada en el estándar POSIX y otros.
Su prototipo es el siguiente (en lenguaje de programación C):
int execve (const char *filename, const char *argv [], const char *envp[]);
execve ejecuta el programa indicado por filename. filename debe ser un binario ejecutable, o bien un guion shell (shell script) comenzando con una línea de la forma "#! intérprete [arg]" (conocida como shebang). En el segundo caso, el intérprete debe ser un nombre de camino válido para un ejecutable que no sea él mismo un guion y que será ejecutado con los argumentos [arg] (opcionales) más el archivo filename a interpretar.
argv es un array de cadenas de argumentos pasados al nuevo programa. envp es un array de cadenas, convencionalmente de la forma clave=valor, que se pasan como entorno al nuevo programa. Tanto argv como envp deben terminar en un puntero nulo. El vector de argumentos y el entorno pueden ser accedidos por la función "main" del programa invocado cuando se define como int main(int argc, char *argv[], char *envp[]).
execve no regresa en caso de éxito, y el segmento de código, segmento de datos, BSS y la pila del proceso invocador se sobreescriben con los correspondientes del programa cargado. El programa invocado hereda el PID del proceso invocador y cualquier descriptor de archivo abierto que no se hubiera configurado para "cerrar en ejecución" (close on exec). Las señales pendientes del proceso invocador se limpian. Cualquier señal capturada por el proceso invocador es devuelta a su comportamiento por defecto.
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.