免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: leiyu
打印 上一主题 下一主题

fork与socket的问题 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2007-09-26 13:26 |只看该作者

回复 #5 ddvv 的帖子

该标记打开了两次,怎么能这样呢,父进程并没有打开,只是在sleep,而且子进程复制父进程相对独立,难道fork时,系统会对资源加访问控制?

论坛徽章:
0
12 [报告]
发表于 2007-09-26 13:27 |只看该作者
原帖由 zwylinux 于 2007-9-26 13:21 发表

是的,如果用shutdown代替的话就不管三七二十把文件描述符给关了,呵呵


非也。
发送FIN并不意味着要关闭连接。

man 2 shutdown

论坛徽章:
0
13 [报告]
发表于 2007-09-26 13:33 |只看该作者
用shutdown引起发送fin当然不一定会关闭连接,但至少会关闭某一个方向的连接吧

论坛徽章:
0
14 [报告]
发表于 2007-09-26 13:33 |只看该作者
原帖由 leiyu 于 2007-9-26 13:26 发表
该标记打开了两次,怎么能这样呢,父进程并没有打开,只是在sleep,而且子进程复制父进程相对独立,难道fork时,系统会对资源加访问控制?


呵呵,也不能说打开了两次吧,应该说有2个引用

论坛徽章:
0
15 [报告]
发表于 2007-09-26 13:34 |只看该作者
fin只是说没有数据要发送了吧,但是还是可以读的~

论坛徽章:
0
16 [报告]
发表于 2007-09-26 13:40 |只看该作者

回复 #14 ddvv 的帖子

子进程close时,父进程在sleep还没有引用此资源,那引用应该是0吧,socket应该关闭,如果子进程关闭了,那个错误提示又是如何得出的?

论坛徽章:
0
17 [报告]
发表于 2007-09-26 13:45 |只看该作者

回复 #14 ddvv 的帖子

哦,close是不是有点像semphone

论坛徽章:
0
18 [报告]
发表于 2007-09-26 13:57 |只看该作者
引用是在创建时就有了,fork后,子进程又引用了一次,但是子进程close后为什么父进程还提示以连接就不知道了,高手说说吧

论坛徽章:
0
19 [报告]
发表于 2007-09-26 14:18 |只看该作者
原帖由 lgkingdom 于 2007-9-26 13:57 发表
引用是在创建时就有了,fork后,子进程又引用了一次,但是子进程close后为什么父进程还提示以连接就不知道了,高手说说吧


man 2 close

close()  closes  a  file descriptor, so that it no longer refers to any file and
       may be reused.  ....................

If fd is the last copy of a particular file descriptor the resources  associated
       with  it are freed;

论坛徽章:
0
20 [报告]
发表于 2007-09-26 15:35 |只看该作者
哈哈,man一下就出来了~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP