Linux: pid numberからtask_structの取得

pid numberからtask_structの取得のめも

pid番号から直接task_structは取得できないので、pid構造体の取得 -> task_struct構造体の取得という流れになる。 pid名前空間を気しなくて良い場合は、find_get_pid()でpid構造体を取得し、pid_task()でtask_structを取得できる。pid名前空間が重要になる場合は、find_get_pid()ではなくてfind_ge_pid()を使ってpid構造体を取得する。

  static struct task_struct *find_task_by_pid(int nr) 
  {
          struct pid *pid = find_get_pid(nr);
          if (!pid) {
                  pr_warn("couldn't find pid %d's task\n", nr);
                  return NULL;
          }   
  
          return pid_task(pid, PIDTYPE_PID);
  }   

( ´ー`)フゥー...

エクストリームプログラミング

エクストリームプログラミング