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?
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. –
Teşekkür ederiz ama 'current_task-> children'' list_head' döndürür ve '' list_head'' ' – Noga
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. –