कहें, मुझे कोड का एक समूह चलाने की ज़रूरत है जो क्रैश होने की संभावना है इसलिए मुझे इसे एक अलग प्रक्रिया पर चलाने की आवश्यकता है। आम तौर पर मैं इसे इस तरह करना चाहते हैं:Qt4 आवेदन में "कांटा()" के लिए पोर्टेबल तरीका?
pid = fork();
if (pid == -1) {
std::cout << "Cant Spawn New Thread";
exit(0);
} else if (pid == 0) {
std::cout << "Im a child that will crash\n";
char *foo = (char *) 0xffff;
std::cout << foo;
exit(0);
} else {
std::cout << "PID: " << pid << "\n";
}
do {
std::cout << "Waiting for " << pid << " to finish .. \n";
pid_w = waitpid(pid,&status,0);
} while (pid_w == -1);
जाहिर है मैं सिर्फ अपनी क्यूटी 4 आवेदन में कांटा का उपयोग कर सकते, लेकिन अगर मुझे लगता है कि क्यूटी 4 प्रदान करता है किसी भी कुछ भी या किसी पोर्टेबल ढंग का सहारा के बिना साथ ही कार्यक्षमता संग्रह कर सकते हैं मैं सोच रहा हूँ वास्तुकला का गुच्छा #ifdefs
?
किसी भी मामले में, मैं इस ऐप को केवल pthread
कार्यान्वयन के लिए लक्षित कर रहा हूं लेकिन मैं अभी भी चीजों को जितना संभव हो सके "मूल" क्यूटी एपीआई के करीब रखना चाहता हूं।
मैंने QThread
का परीक्षण किया है, और थ्रेड में segfaulting पूरे एप्लिकेशन को स्पष्ट रूप से क्रैश करता है और ऐसा लगता है कि QProcess
केवल पूरी तरह से अलग निष्पादन योग्य होने पर उपयोग किया जाने वाला लक्ष्य है। कोई अन्य विकल्प?
क्या आपको पता है कि http://qtcentre.org पर एक क्यूटी मंच है? आप irc.freenode.net पर #qt चैनल पर भी पूछ सकते हैं अगर आपको यहां अपना जवाब नहीं मिलता है। –
मैंने qtcentre की विकी से संभावित उदाहरणों को खोजने का प्रयास किया लेकिन मुझे कोई नहीं मिला, मैं बाद में #qt पर छोड़ दूंगा।) – rasjani