Linux中C语言的一个函数的源代码:socket 编程中的 recv() 函数。
我不太了解内核源码,下载过Linux内核但没搜索到这个函数的源码位置,sys/socket.h头文件里只有recv()函数的申明。请了解Linux好心人告诉我一下它的源码...
我不太了解内核源码,下载过Linux内核但没搜索到这个函数的源码位置,sys/socket.h头文件里只有recv()函数的申明。请了解Linux好心人告诉我一下它的源码或它在源码中的具体位置。
展开
5个回答
展开全部
你好
recv函数只是在用户空间定义的。内核空间有与之对应的函数,也就是说,执行recv函数就会调用到内核中与它对应的函数,实际起作用的就是内核里的这个函数。
至于内核里调用的是那个函数,你不需要是找,那样会把你看晕的,内核里的调用关系复杂的很,除非对内核非常了解的,才会找到到底是怎么调用的,他也是只是找到怎么调用的,至于为什么这样调用是极少人知道的。得问linux的开发者。因为内核的代码量是太多了。有人花了三年时间才看完内核代码。
souce insight只能查找内核里有的东西,属于内核的。recv()函数是不属于内核的,所以用这个是查找不到的
希望可以帮到你,望选为满意答案
recv函数只是在用户空间定义的。内核空间有与之对应的函数,也就是说,执行recv函数就会调用到内核中与它对应的函数,实际起作用的就是内核里的这个函数。
至于内核里调用的是那个函数,你不需要是找,那样会把你看晕的,内核里的调用关系复杂的很,除非对内核非常了解的,才会找到到底是怎么调用的,他也是只是找到怎么调用的,至于为什么这样调用是极少人知道的。得问linux的开发者。因为内核的代码量是太多了。有人花了三年时间才看完内核代码。
souce insight只能查找内核里有的东西,属于内核的。recv()函数是不属于内核的,所以用这个是查找不到的
希望可以帮到你,望选为满意答案
展开全部
在内核中它是sys_recv()
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、recv是socket编程中最常用的函数之一,在阻塞状态的recv有时候会返回不同的值,而对于错误值也有相应的错误码,分别对应不同的状态。
2、recv函数只是在用户空间定义的。内核空间有与之对应的函数,也就是说,执行recv函数就会调用到内核中与它对应的函数,实际起作用的就是内核里的这个函数。至于内核里调用的是那个函数,内核里的调用关系复杂的很,除非对内核非常了解的,才会找到到底是怎么调用的,他也是只是找到怎么调用的。
2、recv函数只是在用户空间定义的。内核空间有与之对应的函数,也就是说,执行recv函数就会调用到内核中与它对应的函数,实际起作用的就是内核里的这个函数。至于内核里调用的是那个函数,内核里的调用关系复杂的很,除非对内核非常了解的,才会找到到底是怎么调用的,他也是只是找到怎么调用的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这是通过系统调用下去的,找调用号,找宏,然后就找到了函数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
建议使用souce:insight查找
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询