代码示例:
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/module.h>
#include <linux/sched.h>
#include <linux/fdtable.h>
#include <linux/fs_struct.h>
#include <linux/mm_types.h>
#include <linux/init_task.h>
#include <linux/types.h>
#include <asm/atomic.h>
MODULE_LICENSE("GPL");
static int __init print_pcb(void)
{
struct task_struct *task,*p;
struct list_head *pos;
int count = 0;
printk("begin:\n");
task = &init_task;
list_for_each(pos,&task->tasks)
{
p = list_entry(pos,struct task_struct,tasks);
count++;
printk("\n\n");
printk("pid:%d , state: %lx,prio:%d , static_prio:%d,parent's pid:%d,count:%d,umask:%d", p->pid,p->state,p->prio,p->static_prio,(p->parent)->pid,atomic_read(&(p->files)->count),(p->fs)->umask);
if((p->mm) != NULL)
printk("total_vm:%ld\n",(p->mm)->total_vm);
}
printk("进程的个数是:%d\n",count);
return 0;
}
static void __exit exit_pcb(void)
{
printk("exiting....\n");
}
module_init(print_pcb);
module_exit(exit_pcb);
博客给出了与task_struct相关的代码示例,task_struct在信息技术领域有重要作用,代码示例能帮助开发者更好理解和运用相关知识。
2768

被折叠的 条评论
为什么被折叠?



