【linux内核分析与应用-陈莉君】动手实践-打印进程描述符task_struct中的字段

博客给出了与task_struct相关的代码示例,task_struct在信息技术领域有重要作用,代码示例能帮助开发者更好理解和运用相关知识。

代码示例:

#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);                   

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值