2011-04-20 15 views
5

çekirdek kodunda çocuk süreç listesini alabiliriz burada kod şudur:nasıl bir sürecin çocukların görevi (süreç) listesine almak istiyorum

void myFunc() 
{ 
    struct task_struct* current_task; 
    struct task_struct* child_task; 
    struct list_head children_list;  

    current_task = current; 
    children_list = current_task->children; 
    child_task = list_entry(&children_list,struct task_struct,tasks); 
    printk("KERN_INFO I am parent: %d, my child is: %d \n", 
      current_task->pid,child_task->pid); 
} 

akım pid haklı, ama Çocuk pid doğru değil. Neyi yanlış yapıyorum?

+0

Ben hiçbir bilgiye hakkında sahip: Eğer LIST_ENTRY çok aşina değilseniz, makale aşağıdaki iyi bir kaynaktır linux-kernel, ama yapısal liste_head * children_list' ve daha sonra 'children_list = & current_task-> children' olmalıdır. –

+0

Teşekkür ederiz ama 'current_task-> children'' list_head' döndürür ve '' list_head'' ' – Noga

+0

5 yılı geçtiğini biliyorum ama @king_nak’in söylediği şey ** yapının ** kopya yapmaması, bunun yerine bir işaretçiyi kullanmanızdır işaret ediyor. Yani current_task-> çocuklardan önce '&' koyun. –

cevap

İlgili konular