Shell代码编写与系统调用详解
1. 系统调用execve概述
系统调用 execve 在Shell代码编写中极为常见,其作用是在程序中启动另一个程序,例如 /bin/sh 。 execve 的原型为:
int execve(const char *path, char *const argv[], char *const envp[]);
- 第一个参数是指向包含可执行文件路径的字符串指针。
- 第二个参数是字符串数组,数组中的每个字符串包含传递给程序的一个参数。
- 最后一个参数同样是字符串数组,包含程序需要看到的环境变量。
1.1 C语言中调用execve示例
以下是一个在C语言中调用 execve 的示例:
int main() {
char *program = "/bin/echo";
char *argone = "Hello !";
char *arguments[3];
arguments[0] = program;
arguments[1] = argone;
arguments[2] = 0;
execve(program, arguments, 0);
}
分析如下:
- 在第2和3行,定
超级会员免费看
订阅专栏 解锁全文
9425

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



