मैं एक प्रोग्राम बनाने की कोशिश कर रहा हूं जो एक नई प्रक्रिया बनाने के लिए फोर्क() का उपयोग करता है। नमूना आउटपुट इस तरह दिखना चाहिए:कांटा() बच्चे और अभिभावक प्रक्रिया
यह बाल प्रक्रिया है। मेरा पिड 733 है और मेरे माता-पिता की आईडी 772 है।
यह मूल प्रक्रिया है। मेरे पीआईडी 772 है और मेरे बच्चे की आईडी 773.
है यह कैसे मैं अपने कार्यक्रम कोडित है:
#include <stdio.h>
#include <stdlib.h>
int main() {
printf("This is the child process. My pid is %d and my parent's id is %d.\n", getpid(), fork());
return 0;
}
यह आउटपुट में परिणाम:
यह बच्चा प्रक्रिया है। मेरा पिड 22163 है और मेरे माता-पिता की आईडी 0.
यह बाल प्रक्रिया है। मेरा पिड 22162 है और मेरे माता-पिता की आईडी 22163 है।
यह कथन दो बार क्यों प्रिंट कर रहा है और मैं पहली वाक्य में बाल आईडी प्रदर्शित होने के बाद माता-पिता की आईडी को सही तरीके से दिखाने के लिए कैसे प्राप्त कर सकता हूं?
संपादित करें:
#include <stdio.h>
#include <stdlib.h>
int main() {
int pid = fork();
if (pid == 0) {
printf("This is the child process. My pid is %d and my parent's id is %d.\n", getpid(), getppid());
}
else {
printf("This is the parent process. My pid is %d and my parent's id is %d.\n", getpid(), pid);
}
return 0;
}
आपका प्रोग्राम कहीं भी "पैरेंट प्रक्रिया" शब्द मुद्रित करने का प्रयास नहीं करता है। वे प्रोग्राम टेक्स्ट में मौजूद नहीं हैं, आप उन्हें क्यों मुद्रित होने की उम्मीद करते हैं? –
'आदमी कांटा'। इसे पढ़ें। शब्दों को समझें। जब आपके पास जवाब खोजने का कोई साधन नहीं है तो StackOverflow पर जाएं। इस अनुभव के लिए आप एक बेहतर प्रोग्रामर होंगे। – asveikau
इसके अलावा, 'फोर्क' बच्चे को मूल प्रक्रिया आईडी वापस नहीं करता है। यह माता-पिता को बच्चे और बच्चे की आईडी में 0 देता है। इस तरह आप जानते हैं कि कौन सा है। –