This question already has answers here:
How does Linux determine the next PID?
(4个答案)
三年前关闭。
我正在练习制作设备驱动程序编程。
我的目标是获取当前任务的pid和父任务的pid。
此外,我得到grand(parent's parent)任务的pid。
这是源代码。
struct task_struct * current_task = current;
struct task_struct * parent_task = current_task->parent;

printk("current pid : %d, current_task->pid);
printk("parent task pid : %d\n", parent_task->pid);
printk("grand pid : %d\n", parent_task->parent->pid);

这就是结果。。
(我跑了三次。)
当前pid:2850
父任务pid:2846
父任务:1692
当前pid:2872
父任务pid:2864
父任务:1692
当前pid:2891
父任务pid:2887
父任务:1692
父级任务的pid始终为1692。
现在的和父母的都在增加。
我只是想知道为什么。。。
如果有人回答我,会有帮助的。。
谢谢你的阅读。

最佳答案

您尚未指定是否使用IDE编写和执行代码。
如果你在使用它
grand parent task是IDE(在您关闭并重新打开它之前是恒定的)。
parent task id-执行程序时,由IDE创建的进程调用程序,每次运行程序时,由IDE创建的新进程调用程序
(当程序终止时,IDE创建的调用进程也将终止)。
current pid是您的进程id
进程ID由os按递增顺序分配。

关于c - (内核简单编程)我想知道为什么pids这样显示,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39814820/

10-11 23:19
查看更多