使用exec这类函数调用可执行文件执行相应的程序。
需要使用fork产生父进程与子进程,并且,父进程需要等待子进程结束后才可以退出。 具体实例: //execlp.c文件
#include<unistd.h>
#include<stdio.h>
#include<stdlib.h>
int main()
{
pid_t ret=fork();
int status;
if(ret<0)
{
perror("create process failed\n");
}
else if(ret==0)
{
printf("in child process %d\n",getpid());
if((ret=execlp("./test","./test",NULL)) >= 0)
{
printf("execute process test sucessfully!\n");
}
else
printf("execute process test failed!\n");
printf("after exec\n");
}
else if(ret>0)
{
printf("in parent prcess %d\n\n\n",getpid());
//wait(&status);//same with the next line code
waitpid(ret,&status,0);//block this process, until its child process end
printf("\n\nin the parent process\n");
}
return 0;
}
//test.c文件
int main()
{
int a,b;
a=56;
b=45;
printf("sum is:%d\n",a+b);
printf("test exec!\n");
return 0;
}
执行方法: gcc test.c -o test gcc execlp.c -o execlp ./execlp /********************运行结果: in parent prcess 5964
in child process 5965
sum is:101
test exec!
in the parent process
|
C语言-------多进程编程
最新推荐文章于 2023-12-28 23:03:51 发布