LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 859|回复: 4

fork的循环实现问题.

[复制链接]
发表于 2004-8-10 15:14:32 | 显示全部楼层 |阅读模式
源码[php]#include <signal.h>
int paction(),caction();
int main()
{
        int pid, ppid;
        signal(SIGUSR1,paction);
        pid=fork();
        switch(pid)
     {case -1:
         perror("Fork() error occured.\n");
         break;
      case 0:
         signal(SIGUSR1,caction);
         ppid=getppid();
         for( ; ; )
          {
            sleep(1);
            kill(ppid,SIGUSR1);
            pause();
            }
         break;
      default:
         for ( ; ; )
           {
             pause();
             sleep(1);
             kill(pid,SIGUSR1);
             }
      }
}
paction()
{printf("I'm the father\n");
}
caction()
{printf("I'm the child\n");
}[/php]
对两个for( ; ; )死循环不懂, 他是怎么实现子父进程的交替?
谢谢先
发表于 2004-8-10 16:27:15 | 显示全部楼层
man kill
发表于 2004-8-10 16:54:16 | 显示全部楼层
两个进程分别用 pause 使自己睡眠,
当收到对方发来的 SIGUSR1 信号后继续执行
 楼主| 发表于 2004-8-10 22:07:56 | 显示全部楼层
最初由 doubleelec 发表
两个进程分别用 pause 使自己睡眠,
当收到对方发来的 SIGUSR1 信号后继续执行


精辟 ! 谢谢

谢谢二位
发表于 2004-8-11 07:06:30 | 显示全部楼层
呵呵
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表