免费注册 查看新帖 |

Chinaunix

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

请教一个关于创建进程的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-08-11 21:24 |只看该作者 |倒序浏览
首先给出脚本如下:
......

print "PID = $$\n";

my $child = fork();
die "cannot fork: $!\n" unless defined $child;

if ($child > 0)
{
      print "Parent process: PID = $$, child = $child\n";
}
else
{
     my $ppid = getppid();
     print "Child process: PID = $$, parent = $ppid\n";
}
这是perl网络编程里的一个小脚本,运行结果为cannot fork,且每次打印出的PID都不一样....
请问:
1、为何无法创建子进程,是不支持fork还是?
2、第一句话打印出的PID是当前进程的PID么?为什么每执行一次,打印出来的值都不一样?
大家帮忙看看吧,谢谢哦^_^

论坛徽章:
0
2 [报告]
发表于 2008-08-11 22:39 |只看该作者

回复 #1 aimeecx 的帖子

2.每次执行这一Perl程序,shell都会开一个子进程,当然pid号就不一样了

论坛徽章:
0
3 [报告]
发表于 2008-08-11 22:42 |只看该作者
1.你确定你没有敲错?
我这边运行没有问题

论坛徽章:
0
4 [报告]
发表于 2008-08-11 23:13 |只看该作者
确定没有,不知道是不是我用的unix环境的问题,该环境下无法使用perldoc,貌似也不支持fork.....不知是什么原因?高手指点下哈^_^

论坛徽章:
0
5 [报告]
发表于 2008-08-12 12:09 |只看该作者

回复 #4 aimeecx 的帖子

具体的系统

论坛徽章:
0
6 [报告]
发表于 2008-08-12 15:49 |只看该作者
我在windows sp2上没问题嘛
我想问一下fork成功后,子进程和父进程的代码怎么区分?

论坛徽章:
0
7 [报告]
发表于 2008-08-12 19:49 |只看该作者

回复 #6 wellfroggy 的帖子

my $pid = fork ()
fork这个函数可以说是执行一次,返回两次
在父进程中,$pid为子进程的pid号
在子进程中,$pid为0
根据这个就可以区分了
具体

  1. perldoc -f fork
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP