当前位置: 技术问答>linux和unix
进程管理问题?
来源: 互联网 发布时间:2015-03-10
本文导语: 我想写个程序,程序的功能是启动文件中记录的多个不同的应用程序.要求结果是本程序和它启动的程序同时在系统中运行. 例: 文件记录: program1 program2 program3 program4 写一个程序start启动program1-4,然后program1-4各自运行. ...
我想写个程序,程序的功能是启动文件中记录的多个不同的应用程序.要求结果是本程序和它启动的程序同时在系统中运行.
例:
文件记录:
program1
program2
program3
program4
写一个程序start启动program1-4,然后program1-4各自运行.
例:
文件记录:
program1
program2
program3
program4
写一个程序start启动program1-4,然后program1-4各自运行.
|
#include
#include
#include
int main(int argc,char * argv[]){
pid_t pid;
pid=fork();
switch(pid){
case -1:
printf("fork wrong1!n");
break;
case 0;
execl("./program1","program1",0);
break;
default:
break;
}
pid=fork();
switch(pid){
case -1:
printf("fork wrong2!n");
break;
case 0;
execl("./program2","program2",0);
break;
default:
break;
}
pid=fork();
switch(pid){
case -1:
printf("fork wrong3!n");
break;
case 0;
execl("./program3","program3",0);
break;
default:
break;
}
pid=fork();
switch(pid){
case -1:
printf("fork wrong4!n");
break;
case 0;
execl("./program4","program4",0);
break;
default:
break;
}
return 0;
}
#include
#include
int main(int argc,char * argv[]){
pid_t pid;
pid=fork();
switch(pid){
case -1:
printf("fork wrong1!n");
break;
case 0;
execl("./program1","program1",0);
break;
default:
break;
}
pid=fork();
switch(pid){
case -1:
printf("fork wrong2!n");
break;
case 0;
execl("./program2","program2",0);
break;
default:
break;
}
pid=fork();
switch(pid){
case -1:
printf("fork wrong3!n");
break;
case 0;
execl("./program3","program3",0);
break;
default:
break;
}
pid=fork();
switch(pid){
case -1:
printf("fork wrong4!n");
break;
case 0;
execl("./program4","program4",0);
break;
default:
break;
}
return 0;
}
|
如果是unix环境,可以用shell脚本阿。
go.sh,内容如下:
#!/bin/sh
program1 &
program2 &
program3 &
program4 &
用 chmod +x go.sh 将该脚本程序改成可执行的属性,执行go.sh即可。
go.sh,内容如下:
#!/bin/sh
program1 &
program2 &
program3 &
program4 &
用 chmod +x go.sh 将该脚本程序改成可执行的属性,执行go.sh即可。
|
不会退出阿!!
|
哦,知道了,谢谢指教。程序从fork()开始就分为了父进程和子进程……