Linux系统管理综合辅导:vfork创建进程使用execl函数
时间:2014-04-29
来源:Linux认证考试网 浏览次数:356
【华夏培训网:中国教育培训第一门户】
vfork和fork差不多,区别是 1. vfork保证子进程先运行 2 vfork和fork一样都创建一个子进程,但是它并不将父进程的地址空
1. vfork保证子进程先运行
2 vfork和fork一样都创建一个子进程,但是它并不将父进程的地址空间完全复制到子进程中,不会复制页表
execl函数 int execl(const char *path, const char *arg, …);
execl()用来执行参数path字符串所代表的文件路径,接下来的参数代表执行该文件的参数argv[0],argv[1]…
最后一个参数必须是空指针NULL作为结束。
返回值:成功则不返回,执行失败则返回-1,失败原因在errno中。
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
int main(int argc,char **argv)
{
if(argc<2)
{
perror("you haven't input the filename!\n");
exit(EXIT_FAILURE);
}
pid_t pid;
pid=vfork();
if(pid<0)
{
printf("Fork Error!\n");
exit(1);
}
else if(pid==0)
{
printf("I am the child.\n");
if(execl("./ceshi","ceshi",argv[1],NULL)<0)
perror("execl error!\n");
}
else{
printf("I am the father\n");
return 0;
}
}
Linux认证