linux内核头文件中预定义后面接函数一样的代码是什么意思

图片描述

比如说/ ipc/sem.c /
#define _NR_semget 190
__SYSCALL(__NR_semget,sys_semget)//这里像函数一样的代码是什么意思

阅读 3.4k
3 个回答

这里其实是两行。
前面定义了一个宏,值是190。
预处理语句不需要分号结束的。

后面一行的__SYSCALL是一个宏,在大前面定义的。括号里的是它的参数。

你可以理解成将该数字(也就是系统调用号)跟后面的系统调用函数关联起来

Linux内核的函数这么多,不用define预处理的话,不仅维护起来费劲,也不好管理

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题