游客:
注册
|
登录
|
帮助
Linux伊甸园论坛
»
Linux内核源代码学习
» linux中sendto()的源代码怎么找?
IBM 集群技术资源全面接触
‹‹ 上一主题
|
下一主题 ››
投票
交易
悬赏
活动
打印
|
推荐
|
订阅
|
收藏
标题: linux中sendto()的源代码怎么找?
xinling101
新生入学
UID 210673
精华 0
积分 15(
积分有什么用?
)
帖子 5
阅读权限 10
注册 2007-9-10
状态 离线
#1
使用道具
发表于 2008-4-16 21:30
资料
个人空间
短消息
加为好友
linux中sendto()的源代码怎么找?
这几天看pppoe的源代码,看到send_disc()这个函数最后调用socket中的sendto()来发送数据包(通过PF_PACKET这个特殊的协议族直接访问驱动)。想看看sendto()的源代码,竟然在linux源码中找不到,我猜最终是调用的
sys_sendto()这个函数,但我不知道sendto()是如何跳到sys_sendto()去的,从源代码中搜寻不到任何信息。能有人给我解释一下吗?非常感谢![/
b]
[
本帖最后由 xinling101 于 2008-4-16 21:33 编辑
]
不容错过的IBM 集群技术资源汇总
zltjiangshi
版主
注册用户
UID 160339
精华 0
积分 78(
积分有什么用?
)
帖子 502
阅读权限 100
注册 2006-6-8
状态 离线
#2
使用道具
发表于 2008-4-16 22:39
资料
个人空间
短消息
加为好友
这个比较复杂,难以说清楚,可以百度一下“系统调用的进入"
主要步骤:
1,glibc里面的封装函数,一般是_syscalln(),执行一下int 0x80;
2,发生上下文切换,进到内核里面
3,根据预定义的系统调用号查找系统调用表,找到处理函数的地址
4,跳转到该地址执行(如sys_sendto())
1,本人乃Linux伊甸园“Linux内核学习”,“红旗等发行版”版主,请大家捧场。
2,红旗Linux在设备驱动,系统设置,中文美化,易用性方面做得非常好,建议大家使用。
3,本人是红旗Linux的粉丝,不是枪手。
xinling101
新生入学
UID 210673
精华 0
积分 15(
积分有什么用?
)
帖子 5
阅读权限 10
注册 2007-9-10
状态 离线
#3
使用道具
发表于 2008-4-17 07:33
资料
个人空间
短消息
加为好友
QUOTE:
原帖由
zltjiangshi
于 2008-4-16 22:39 发表
这个比较复杂,难以说清楚,可以百度一下“系统调用的进入"
主要步骤:
1,glibc里面的封装函数,一般是_syscalln(),执行一下int 0x80;
2,发生上下文切换,进到内核里面
3,根据预定义的系统调用号查找系 ...
明白了,多谢版主!
不容错过的IBM 集群技术资源汇总
xinling101
新生入学
UID 210673
精华 0
积分 15(
积分有什么用?
)
帖子 5
阅读权限 10
注册 2007-9-10
状态 离线
#4
使用道具
发表于 2008-4-17 10:16
资料
个人空间
短消息
加为好友
基本的原理明白了,另外再请教一下版主具体的问题:这个"sendto"我在linux源代码里找了一下,没有找到它具体是如何对应到一个系统调用的,我猜是通过一些宏吧!但没有找到。请版主指点。
另外,我之前只做过windows和vxworks的开发,从没看过linux这样大规模的源程序,现在有一点读代码的疑问,就是在linxu代码中,经常有:
#include <sys/stdio.h>
这样的语句,本来很简单,但我却经常找不到这个头文件到底在哪里,有时搜索整个源文件目录都找不到,另外sys的目录也找不到,请问这个sys是否是在makefile里面定义的?
问题或许简单了一点,但我确实不明白,能否请版主再指点一下,多谢!
不容错过的IBM 集群技术资源汇总
zltjiangshi
版主
注册用户
UID 160339
精华 0
积分 78(
积分有什么用?
)
帖子 502
阅读权限 100
注册 2006-6-8
状态 离线
#5
使用道具
发表于 2008-4-17 17:52
资料
个人空间
短消息
加为好友
sendto是glibc的函数,内核里没有,内核里只有sys_sendto
头文件都在/usr/include下面,sys是它的子目录。
1,本人乃Linux伊甸园“Linux内核学习”,“红旗等发行版”版主,请大家捧场。
2,红旗Linux在设备驱动,系统设置,中文美化,易用性方面做得非常好,建议大家使用。
3,本人是红旗Linux的粉丝,不是枪手。
xinling101
新生入学
UID 210673
精华 0
积分 15(
积分有什么用?
)
帖子 5
阅读权限 10
注册 2007-9-10
状态 离线
#6
使用道具
发表于 2008-4-18 14:33
资料
个人空间
短消息
加为好友
回复 #5 zltjiangshi 的帖子
我明白了,多谢斑竹!
不容错过的IBM 集群技术资源汇总
投票
交易
悬赏
活动
控制面板首页
编辑个人资料
积分交易
公众用户组
好友列表
升级个人空间
基本概况
论坛排行
主题排行
发帖排行
积分排行
在线时间
管理团队
管理统计
当前时区 GMT+8, 现在时间是 2008-5-17 01:37
Powered by
Discuz!
5.5.0
© 2001-2007
Comsenz Inc.
Processed in 0.078393 second(s), 5 queries
TOP
清除 Cookies
-
联系我们
-
Linux伊甸园
-
Archiver
-
WAP
多串口卡,串口服务器,终端服务器,KVM切换器
best dvd copy software