|
|
#include <sys/types.h>
#include <unistd.d>
#include <sys/wait.h>
static void function1(char *);
static void function2(char *);
int main(int argc,char *argv[])
{
if(argc==1)
function1(argv[0]);
else
function2(argv[1]);
exit(0);
}
static void function1(char *cmd)
{
if(start==cmd)
{
while(stop!=cmd)
{
sleep(10);
printf("it sleeping\n");
}
exit(0);
}
else
printf("the wrong putin\n");
exit(0);
}
static void function2(char *cmd)
{
pid_t pid;
int i;
for(i=0;i<cmd;i--);
{
if((pid=fork())<0)
err_sys("fork error");
else if(pid==0){
printf("this is the fork %d\n",cmd);
}
else
sleep(3);
exit(0);
}
要实现输入TEST.OUT START 序执行长时间的sleep;运行program stop,则程序停止运行;
运行program start n,则启动n个程序在后台驻留内存运行,再加上一个主控进程,则应当是有n+1个进程在后台运行。其中主控进程是其他工作进程的父进程。 |
|