說,我需要運行一堆容易崩潰的代碼,所以我需要在不同的進程上運行它。通常,我會做這樣的:在Qt4應用程序中使用「fork()」的便攜方式?
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);
很顯然,我可以只用叉子在我的Qt4應用程序,但我不知道是否我可以存檔與Qt4的提供的任何東西或任何可移植的方式,而不訴諸相同的功能有一堆建築#ifdefs
?
無論如何,我的目標只有pthread
這個應用程序的實現,但我仍然想盡可能接近「本地」Qt API。
我測試過QThread
,並在線程顯然段錯誤崩潰的整個應用程序,它似乎是QProcess
只管產卵完全不同的可執行文件時使用。任何其他的選擇?
你知道Qt論壇在http://qtcentre.org嗎?您也可以在irc.freenode.net上的#qt頻道上提問,以防萬一您在這裏沒有得到您的答案。 – 2009-06-08 23:56:06
我曾嘗試從qtcentre的維基搜索可能的例子,但沒有發現任何,我將#qt下降的今天晚些時候propably =) – rasjani 2009-06-09 06:29:24