execve系统调用
execve系统调用
我们前面提到了, fork, vfork等复制出来的进程是父进程的一个副本, 那么如何我们想加载新的程序, 可以通过execve来加载和启动新的程序。...但是linux也支持其他不同的可执行程序格式, 各个可执行程序的执行方式不尽相同, 因此linux内核每种被注册的可执行程序格式都用linux_bin_fmt来存储, 其中记录了可执行程序的加载和执行函数...linux支持其他不同格式的可执行程序, 在这种方式下, linux能运行其他操作系统所编译的程序, 如MS-DOS程序, 活BSD Unix的COFF可执行格式, 因此linux内核用struct...,让各种可执行程序的处理程序前来认领和处理。...(filename), 而且还传递了指向了程序的参数argv和环境变量envp的指针
参数 描述
filename 可执行程序的名称
argv 程序的参数
envp 环境变量
指向程序参数argv和环境变量