免费注册 查看新帖 |

Chinaunix

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

再论传递文件描述符 [复制链接]

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
11 [报告]
发表于 2003-07-24 14:43 |只看该作者

再论传递文件描述符

呵呵,SCO中,sendmsg到底是否调用ioctl对我当前的一个系统很重要,因此追问你。

我想得到的是确切的资料,试验看不出来是否调用ioctl。

至于列举linux内核的代码,是因为在linux中,ptrace看不出ioctl的痕迹,就算是,也是一条指令和存贮器,期存器信息而已。
描述linux中sendmsg是:我没有发现调用ioctl的地方,或许我理解错了,所以请教你。

没有别的意思,仅仅是讨论一下。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
12 [报告]
发表于 2003-07-24 14:48 |只看该作者

再论传递文件描述符


  1. 如果将 cmsg 的这三个字段置为0,再调用
  2. sendmsg ,是可以成功的,而且,也能够达到我们的目的
复制代码


根据这种情况,sendmsg和ioctl有可能存在一些关系,现在需要找到socksysreq和struct msghdr 之间是不是在内核中存在互访队列和切换的问题。楼主觉得这么去分析是否合理?

论坛徽章:
0
13 [报告]
发表于 2003-07-24 14:50 |只看该作者

再论传递文件描述符

如果你指的是  sco , 那可以肯定,它确实调用了 ioctl ,
看看  trace 的输出就再明白不过了。

论坛徽章:
0
14 [报告]
发表于 2003-07-24 16:37 |只看该作者

再论传递文件描述符

我想,这个问题在外表看来是莫名其妙,既然系统明确设置了
SOL_SOCKET 和SCM_RIGHT ,那么具体实现中就不会忽略,sco 再烂
也不会烂到这个程度,cmsghdr 和 socksysreq 肯定有
某种对应关系,这是不言自明的,其实在 sco 中
socketpair,socket,sendmsg,recvmsg
都是库函数,而真正的系统调用就是
ioctl( fd, SIOSOCKSYS, p )
他使用 struct socksysreq 来传递数据,这个结构是7个整数,
他根据这7个整数的值决定是哪个系统调用,
搞清楚这个是关键的。
而且 sendmsg 和 recvmsg 是使用同一个 struct socksysreq 来
调用的,它是堆栈中一个临时变量。

论坛徽章:
0
15 [报告]
发表于 2003-07-25 09:18 |只看该作者

再论传递文件描述符

只要更换一个.h文件sco上即可ok,sco的人也说这是个bug

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
16 [报告]
发表于 2003-07-25 09:47 |只看该作者

再论传递文件描述符

楼上的请明示具体更换的文件和理由。

感谢你的回复。

jobman分析的有一定的道理。希望大家能够提供更多的信息。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP