Linux中C语言的一个函数的源代码:socket 编程中的 recv() 函数。

我不太了解内核源码,下载过Linux内核但没搜索到这个函数的源码位置,sys/socket.h头文件里只有recv()函数的申明。请了解Linux好心人告诉我一下它的源码... 我不太了解内核源码,下载过Linux内核但没搜索到这个函数的源码位置,sys/socket.h头文件里只有recv()函数的申明。请了解Linux好心人告诉我一下它的源码或它在源码中的具体位置。 展开
 我来答
liuhb1207
2013-03-23 · TA获得超过355个赞
知道小有建树答主
回答量:130
采纳率:0%
帮助的人:141万
展开全部
你好
recv函数只是在用户空间定义的。内核空间有与之对应的函数,也就是说,执行recv函数就会调用到内核中与它对应的函数,实际起作用的就是内核里的这个函数。
至于内核里调用的是那个函数,你不需要是找,那样会把你看晕的,内核里的调用关系复杂的很,除非对内核非常了解的,才会找到到底是怎么调用的,他也是只是找到怎么调用的,至于为什么这样调用是极少人知道的。得问linux的开发者。因为内核的代码量是太多了。有人花了三年时间才看完内核代码。

souce insight只能查找内核里有的东西,属于内核的。recv()函数是不属于内核的,所以用这个是查找不到的

希望可以帮到你,望选为满意答案
深圳深软
2013-03-23
知道答主
回答量:25
采纳率:0%
帮助的人:22.9万
展开全部
在内核中它是sys_recv()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tattackor
2015-10-26 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:885万
展开全部
1、recv是socket编程中最常用的函数之一,在阻塞状态的recv有时候会返回不同的值,而对于错误值也有相应的错误码,分别对应不同的状态。
2、recv函数只是在用户空间定义的。内核空间有与之对应的函数,也就是说,执行recv函数就会调用到内核中与它对应的函数,实际起作用的就是内核里的这个函数。至于内核里调用的是那个函数,内核里的调用关系复杂的很,除非对内核非常了解的,才会找到到底是怎么调用的,他也是只是找到怎么调用的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wlzxlc
2013-03-23 · 超过37用户采纳过TA的回答
知道答主
回答量:114
采纳率:0%
帮助的人:74.3万
展开全部
这是通过系统调用下去的,找调用号,找宏,然后就找到了函数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
哲学家超人
2013-03-23 · 超过37用户采纳过TA的回答
知道小有建树答主
回答量:132
采纳率:0%
帮助的人:67万
展开全部
建议使用souce:insight查找
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式