Tuesday 15 June 2010

linux - Why does PPID change? -


यह मेरा कोड है:

  #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