刘森林 原创作品转载请注明出处
《Linux内核分析》MOOC课程)
分析linux系统如何装载和启动一个可执行程序,也就是分析一个重要的系统调用execve
execve函数原型:
#include <unistd.h>
int execve (const char* path,char* const argv[],char* const envp[]);
参数说明:path 表示启动程序所在的路径名;argv 表示启动程序所带的参数;envp 表示启动程序所需要的环境变量参数
所要启动的可执行程序m.o的代码,该段代码输出字符串“Output something”:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
printf("Output something\n");
return 0;
}
执行execve的代码:
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
int main()
{
char* argv = {
0,0};