您现在的位置是:主页 > news > 网站手机端做app/搭建网站流程
网站手机端做app/搭建网站流程
admin2025/6/16 3:09:10【news】
简介网站手机端做app,搭建网站流程,易企秀电脑版,手机端网站动效类怎么做上一章我们曾介绍了fork函数,在常规使用过程中,通过fork生成的子函数,往往要调用一种exec函数以执行另一个程序。当进程调用一种exec函数时,该进程执行的程序完全替换为新程序,而新程序则从其main函数开始执行。因为调…
上一章我们曾介绍了fork函数,在常规使用过程中,通过fork生成的子函数,往往要调用一种exec函数以执行另一个程序。当进程调用一种exec函数时,该进程执行的程序完全替换为新程序,而新程序则从其main函数开始执行。因为调用exec并不创建新进程,所以前后的进程ID并未改变。exec只是用一个全新的程序替换了当前进程的正文、数据、堆和栈段。
exec函数有6中具体的函数可供选择,它们常常统称为exec函数。这些exec函数使得UNIX进程控制语句更加完善。用fork可以创建新的进程,用exec可以执行新程序。exit函数和两个wait函数处理终止和等待终止。这些是我们需要的基本的进程控制语句。在后面各节中将使用这些语句构造另外一些如popen和system之类的函数。
int execl(const char *pathname, const char *arg0, ...);
int execv(const char *pathname, const char *argv, ...);
int execle(const char *pathname, const char *arg0, ...);
int execve(const char *pathname, const char *argv, char *const envp[]);
int execlp(const char *filename, const char *arg0, ...);
int execvp(const char *filename, char *const argv[]);
这些函数之间的第一个区别是前4个取路径名作为参数,后两个则取文件名作为参数。当指定filename作为参数时:
如果filename中包含/,则将其视为路径名。
否则就按PATH环境变量,在它所指定的各目录中搜寻可执行文件。
如果execlp或execvp使用路径前缀中的一个找到了一个可执行文件,但是该文件不是由连接编辑器产生的机器可执行文件,则认为该文件是一个shell脚本,于是试着调用/bin/sh,并以该filename作为shell的输入。
第二个区别与参数表的传递有关(l表示list,v表示vector)。函数execl、execlp和execle要求将新程序的每个命令行参数都说明为一个单独的参数。这种参数表以空指针结尾。对于另外三个函数(execv、execvp、execve),则应先构造一个指向各参数的指针数组,然后将该数组地址作为这三个函数的参数。
根据上图可以看出,这六个exec函数是有区别的,其中execlp是最好使用的一个函数。