在 Windows 平台下,我们可以通过双击运行可执行程序,让这个可执行程序成为一个进程;而在 Linux 平台,我们可以通过 ./ 运行,让一个可执行程序成为一个进程。
但是,如果我们本来就运行着一个程序(进程),我们如何在这个进程内部启动一个外部程序,由内核将这个外部程序读入内存,使其执行起来成为一个进程呢?这里我们通过 exec 函数族实现。
exec 函数族,顾名思义,就是一簇函数,在 Linux 中,并不存在 exec() 函数,exec 指的是一组函数,一共有 6 个:
#include <unistd.h>
int execl(const char *path, const char *arg, ...);
int execlp(const char *file, const char *arg, ...);
int execle(const char *path, const char *arg, ..., char * const
在Linux中,exec函数族允许在一个进程中启动另一个程序,通过替换调用进程的内容来执行新程序。execve()是唯一的系统调用,其他如execl(), execv(), execlp(), execvp(), execle()和execve()都是包装函数。这些函数在成功执行时不返回,失败则返回-1。不同的exec函数主要区别在于参数传递方式和是否根据PATH环境变量搜索可执行文件。"
124547420,9412910,使用Ettercap进行中间人攻击实战指南,"['安全', '网络嗅探', '安全工具', '黑客技术', '网络安全']
订阅专栏 解锁全文
3万+

被折叠的 条评论
为什么被折叠?



