current
task_struct
のcomm
フィールドを印刷して、プロセスの名前を表示しようとしています。そして、current->parent
を使って、私はすべての現在のプロセスの祖先について同じことをしたいと思います。Linuxカーネルの `current` task_structのcommフィールドを出力する
while (there is still an ancestor of current to print) {
...
printk("Name: %s", current_task->comm);
...
}
は、あなたが見ることができるように、最初にここで
は、私がこれまで持っているものです最後のプロセスが正しく印刷されません。私はなぜ最初のものが切り捨てられているのか理解しています -current->comm
は16
char
の配列なので、process_ancestor(プログラムの名前)に最終的な "r"の余地はありません。しかし、なぜ
swapper
にnullターミネータが付加されているのか分かりません。これが実際にプロセスの名前である可能性はありますか?それとも何か他にうまくいかないのですか?
奇妙な命名規則。それを指摘してくれてありがとう – Adam