fork()函數的主要實現(2)

 
  1. // 爲新進程取得不重複的進程號last_pid,並返回在任務數組中的任務號(數組index)。
  2. int
  3. find_empty_process (void)
  4. {
  5.   int i;
  6. repeat:
  7.   if ((++last_pid) < 0)
  8.     last_pid = 1;
  9.   for (i = 0; i < NR_TASKS; i++)
  10.     if (task[i] && task[i]->pid == last_pid)
  11.       goto repeat;
  12.   for (i = 1; i < NR_TASKS; i++)    // 任務0 排除在外。
  13.     if (!task[i])
  14.       return i;
  15.   return -EAGAIN;
  16. }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章