मेरे पास निम्न कोड है जो एक बाल कांटा बनाते हैं। और मैं माता-पिता में अपना निष्पादन पूरा करने से पहले बच्चे को मारना चाहता हूं। इसे कैसे करना है?कांटा के बच्चे को कैसे मारना है?
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int i;
main (int ac, char **av)
{
int pid;
i = 1;
if ((pid = fork()) == 0) {
/* child */
while (1) {
printf ("I m child\n");
sleep (1);
}
}
else {
/* Error */
perror ("fork");
exit (1);
}
sleep (10)
// TODO here: how to add code to kill child??
}
'कांटा()' रिटर्न एक 'pid_t' , 'int' नहीं, इसलिए आपको अपना वैरिएबल घोषित करना चाहिए। –
मूल प्रश्न से संबंधित नहीं: जब कांटा एक नई प्रक्रिया को वापस लाता है (सफलता के मामले में) और माता-पिता और बच्चे दोनों उस बिंदु से निष्पादन जारी रखते हैं जहां 'कांटा' कहा जाता है। एक बच्चे की प्रक्रिया के लिए pid = 0 (अच्छी तरह से, यह हमेशा माता-पिता प्रक्रिया के लिए getpid()) और pid> 0 के माध्यम से प्राप्त कर सकता है। त्रुटि तब होती है जब कांटा रिटर्न -1। आपके कोड में आप एक "पैरेंट प्रोसेस" भाग को एक त्रुटि के रूप में देख रहे हैं। –
संभावित डुप्लिकेट [माता-पिता प्रक्रिया द्वारा बाल प्रक्रिया को कैसे मारें?] (Http://stackoverflow.com/questions/6501522/how-to-kill-a-child-process-by-the-parent-process) – goozez