我想知道task_struct的大小。因此我从网站上下载了linux源代码,并通过在源代码文件根目录中的终端输入命令make headers_install
生成了头文件。
#include<stdio.h>
#include<linux/sched.h>
int main()
{
printf("%d\n",sizeof(struct task_struct)).
return 0;
}
键入命令到termial以编译和源代码gcc -g -I *path/to/linux*-source/usr/include test.c -o test
。但是终端显示struct task_struct没有定义东西。
任何人都可以帮我搞清楚吗?真的很感激。
答案 0 :(得分:3)
此结构仅供内核内部使用。它的定义非常长,并且在很大程度上取决于内核配置。因此,结构大小也会因内核配置而异,您无法从用户空间获取它。
除非你提取内核配置,这对我来说是个坏主意。更好的是编写内核模块。