#include <iostream>
#include <unistd.h>
#include <stdlib.h>
int main() {
std::cout << 1;
fork();
exit(0);
}
fork
cout
में स्ट्रीमिंग के बाद स्थित है, लेकिन इस कोड को प्रिंट 11. क्यों? और कोड केवल 1 प्रिंट क्यों करता है यदि std::endl
cout
में जोड़ा गया है?फोर्क() परिणाम डुप्लिकेट आउटपुट में क्यों होता है?
#include <iostream>
#include <unistd.h>
#include <stdlib.h>
int main() {
std::cout << 1 << std::endl;
fork();
exit(0);
}
दो प्रक्रियाओं में बफर दो बार फंस जाते हैं। मैन, यह कष्टप्रद होना चाहिए। –
दुर्भाग्यवश, सी ++ ऑब्जेक्ट फोर्किंग के साथ अच्छी तरह से नहीं खेलते हैं। असल में, ऑब्जेक्ट प्रभावी रूप से प्रतिलिपि बनाने के बिना प्रतिलिपि बनाई जाती है, और यह सी ++ द्वारा निर्मित बहुत सी सुरक्षा को रोकती है। – SergeyA
मैं केवल कल्पना कर सकता हूं कि मानक कंटेनर पर 'फोर्क()' विलुप्त हो जाएगा। बस यह मत करो। –