यह मेरा कोड है:
#include & lt; stdio.h & gt; # शामिल करें & lt; unistd.h & gt; # शामिल करें & lt; sys / wait.h & gt; Int main () {pid_t pid; पूर्णांक स्थिति; यदि ((pid = fork ()) & lt; 0) {printf ("फोर्क विफल।"); } Else if (pid == 0) {printf ("बच्चा: \ nPID:% d, PPID:% d, यूआईडी:% d \ n", pid, getppid (), getuid ()); } और (रुको (और स्थिति); // printf को समाप्त करने के लिए बच्चे की प्रतीक्षा करें ("पेरेंट: \ nPID:% d, पीपीआईडी:% d, यूआईडी:% d \ n", पीआईडी, बीटपीड (), गेटयूड ()); } वापसी 0; }
यह आउटपुट है:
बच्चा: पीआईडी: 0, पीपीआईडी: 430 9, यूआईडी: 1000 पेरेंट: पीआईडी: 4310, पीपीआईडी: 3188, यूआईडी: 1000
430 9 बच्चे की पीपीआईडी क्यों है? क्या यह 4310 नहीं होना चाहिए? Thakkuk आप।
आपने माता-पिता के पीआईडी को मूल कोड में प्रिंट नहीं किया है, इसलिए आपके पास कुछ नहीं है इसे तुलना करने के लिए फोर्क ()
माता-पिता को बच्चे का पीआईडी देता है आपके उदाहरण में ऐसा प्रतीत होता है कि माता-पिता के पीआईडी 4309 और बच्चे 4310 हैं।
No comments:
Post a Comment