5
मैं एक प्रक्रिया के बच्चों कार्य (प्रक्रिया) की सूची पर प्राप्त करना चाहते हैं कैसे प्राप्त कर सकते हैं, यहाँ कोड है:मैं कर्नेल कोड में बच्चों प्रक्रिया सूची
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);
}
वर्तमान पीआईडी ठीक है, लेकिन बाल पिड सही नहीं है। मैं क्या गलत कर रहा हूँ?
मैं इस बारे में कोई ज्ञान है: यदि आप LIST_ENTRY के साथ बहुत परिचित नहीं हैं, निम्न आलेख अच्छा स्रोत है लिनक्स-कर्नेल, लेकिन मुझे लगता है कि यह 'struct list_head * children_list' और बाद में' children_list = और current_task-> बच्चों 'होना चाहिए। –
धन्यवाद, लेकिन 'current_task-> children' रिटर्न' list_head' और नहीं 'list_head *' – Noga
मैं जानता हूँ कि यह 5 साल बीत रहा है, लेकिन क्या @king_nak कह रहा है कि तुम ** नहीं ** चाहिए प्रतिलिपि struct है, लेकिन इसके बजाय एक सूचक का उपयोग इसे इंगित करना तो आप current_task-> बच्चों से पहले '&' डालते हैं। –