1

我想知道task_struct的大小。因此,我从网站下载了 linux 源代码,并通过make headers_install在源代码文件根目录的终端中键入命令生成了头文件。

#include<stdio.h>
#include<linux/sched.h>
int main()
{
    printf("%d\n",sizeof(struct task_struct)).
    return 0;
}

键入命令到终端进行编译和源代码gcc -g -I *path/to/linux*-source/usr/include test.c -o test。但是终端显示 struct task_struct 没有定义东西。有大佬能帮我解答一下吗?非常感谢。

4

1 回答 1

3

此结构仅供内核内部使用。它的定义很长,并且很大程度上取决于内核配置。因此,结构大小也因内核配置而异,您无法从用户空间获取它。

除非,你提取内核配置,这对我来说是个坏主意。更好的方法是编写内核模块。

于 2013-07-11T17:56:14.927 回答