栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在哪里可以找到系统调用源代码?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在哪里可以找到系统调用源代码?

您需要Linux内核源代码才能查看系统调用的实际源代码。手册页(如果安装在本地系统上)仅包含调用的文档,而不包含调用源本身。

对于您来说不幸的是,系统调用并不仅仅存储在整个内核树中的一个特定位置。这是因为各种系统调用可以引用系统的不同部分(进程管理,文件系统管理等),因此将它们与与该系统的特定部分相关的树的部分分开存储是不可行的。

您可以做的最好的事情就是寻找

SYSCALL_DEFINE[0-6]
宏。它(显然)用于将给定的代码块定义为系统调用。例如,
fs/ioctl.c
具有以下代码:

SYSCALL_DEFINE3(ioctl, unsigned int, fd, unsigned int, cmd, unsigned long, arg){}

这样的定义意味着

ioctl
系统调用已声明,并接受三个参数。
SYSCALL_DEFINE
均值旁边的数字表示自变量的数量。例如,在中
getpid(void)
声明的情况下
kernel/timer.c
,我们有以下代码:

SYSCALL_DEFINE0(getpid){        return task_tgid_vnr(current);}

希望这能使事情变得简单。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/412264.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号