免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5523 | 回复: 7
打印 上一主题 下一主题

关于fork请教 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-07-10 08:38 |只看该作者 |倒序浏览
最近正在学习perl fork。
我想请问标准的fork用法是否如下?
if (my $pid = fork) {
  print "Starting Sub_ProcessPID\n";
}else {
  #do sth like "ftp x.x.x.x";
  exit(1);
}
请问exit(1)是否有必要写。还有就是是否必需要用wait 或waitpid函数,现在对这个比较晕,希望大家帮助一下。谢谢

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
2 [报告]
发表于 2006-07-10 11:17 |只看该作者
exit(1);在这里,表示生成不成功,退出反馈1表示出错了。

论坛徽章:
0
3 [报告]
发表于 2006-07-10 11:47 |只看该作者
原帖由 condor_P 于 2006-7-10 08:38 发表
最近正在学习perl fork。
我想请问标准的fork用法是否如下?
if (my $pid = fork) {
  print "Starting Sub_Process:$PID\n";
}else {
  #do sth like "ftp x.x.x.x";
  exit(1);
}
...


exit 1表示子进程异常退出,正常的,这里应该是exit 0才对。
这里没必要调用wait或waitpid,这对函数用于收割子进程,只在server模式下才有必要调用。因为server程序的父进程总在那里运行,所以它有必要收割子进程。

论坛徽章:
0
4 [报告]
发表于 2006-07-10 14:36 |只看该作者
非常感谢

论坛徽章:
0
5 [报告]
发表于 2006-09-13 22:59 |只看该作者
原帖由 兰花仙子 于 2006-7-10 11:47 发表


exit 1表示子进程异常退出,正常的,这里应该是exit 0才对。
这里没必要调用wait或waitpid,这对函数用于收割子进程,只在server模式下才有必要调用。因为server程序的父进程总在那里运行,所以它有必要收割 ...



收割什么意思啊?怎么收割?有啥作用??

论坛徽章:
0
6 [报告]
发表于 2006-09-13 23:09 |只看该作者
原帖由 woqpalsk 于 2006-9-13 22:59 发表



收割什么意思啊?怎么收割?有啥作用??


就是回收子进程了。父进程创建子进程后,在子进程退出时,它有义务负责回收,否则会造成很多僵尸进程。
wait和waitpid都是收割子进程的函数,后者带WNOHANG参数可用于非阻塞模式。前者是阻塞的。
详情请阅读下POSIX相关的文档。

论坛徽章:
0
7 [报告]
发表于 2006-09-14 05:04 |只看该作者
原帖由 兰花仙子 于 2006-9-13 23:09 发表


就是回收子进程了。父进程创建子进程后,在子进程退出时,它有义务负责回收,否则会造成很多僵尸进程。
wait和waitpid都是收割子进程的函数,后者带WNOHANG参数可用于非阻塞模式。前者是阻塞的。
详情请阅读 ...


谢谢仙子,wait看样子是死等了,有没有什么办法设置一个timeout,超时就kill掉然后善后?

还有可以在fork出的儿子里面再继续fork孙子吗?老爸不想死等,想让儿子去等孙子,如果儿子等不到就杀了孙子


谢谢

论坛徽章:
0
8 [报告]
发表于 2006-09-14 08:46 |只看该作者
原帖由 woqpalsk 于 2006-9-14 05:04 发表


谢谢仙子,wait看样子是死等了,有没有什么办法设置一个timeout,超时就kill掉然后善后?

还有可以在fork出的儿子里面再继续fork孙子吗?老爸不想死等,想让儿子去等孙子,如果儿子等不到就杀了孙子


...


用waitpid了,它用无阻塞方式调用。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP