我正在尝试打印 的comm
字段current
task_struct
以打印进程的名称。然后,使用current->parent
,我想对所有当前进程的祖先做同样的事情。
这是我到目前为止所得到的:
while (there is still an ancestor of current to print) {
...
printk("Name: %s", current_task->comm);
...
}
如您所见,第一个和最后一个过程没有正确打印。我理解为什么第一个被截断 -current->comm
是一个 16 char
s 的数组,因此 process_ancestor (我的程序的名称)中的最后一个“r”根本没有空间。但是,我不明白为什么要swapper
附加空终止符。有没有可能这实际上是进程的名称?还是有其他问题?