Giả sử, tôi cần chạy một loạt mã dễ bị hỏng nên tôi cần chạy nó trên một quy trình khác. Điển hình là tôi muốn làm điều đó như thế này:Cách di động để "fork()" trong ứng dụng 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);
Rõ ràng là tôi chỉ có thể sử dụng nĩa trong ứng dụng Qt4 của tôi nhưng tôi đang tự hỏi nếu tôi có thể lưu trữ nhiều chức năng giống với bất kỳ điều gì mà Qt4 cung cấp hoặc bất cứ cách nào di động mà không cần đến có bó kiến trúc #ifdefs
?
Trong mọi trường hợp, tôi nhắm mục tiêu ứng dụng này chỉ để thực hiện pthread
nhưng tôi vẫn muốn giữ mọi thứ gần với API Qt "gốc" nhất có thể.
Tôi đã thử nghiệm QThread
và segfaulting trong chuỗi treo toàn bộ ứng dụng rõ ràng và có vẻ như QProcess
chỉ được sử dụng khi sinh ra các tệp thực thi hoàn toàn khác nhau. Bất kỳ lựa chọn thay thế nào khác?
Bạn có biết có diễn đàn Qt tại http://qtcentre.org không? Bạn cũng có thể yêu cầu trên #qt kênh trên irc.freenode.net Chỉ trong trường hợp bạn không nhận được câu trả lời của bạn ở đây. –
Tôi đã cố gắng tìm kiếm các ví dụ có thể từ wiki của qtcentre nhưng không tìm thấy bất kỳ thứ gì, tôi sẽ ghé qua ngày #qt sau ngày hôm nay propably =) – rasjani