gpt4 book ai didi

c++ - Qt4 应用程序中 "fork()"的可移植方式?

转载 作者:可可西里 更新时间:2023-11-01 18:27:00 25 4
gpt4 key购买 nike

比如说,我需要运行一堆容易崩溃的代码,所以我需要在不同的进程上运行它。通常我会这样做:

  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 应用程序中使用 fork,但我想知道我是否可以使用 Qt4 提供的任何东西或任何可移植的方式来归档相同的功能,而无需求助于一堆架构 #ifdefs

无论如何,我的目标是让这个应用程序只有 pthread 实现,但我仍然希望尽可能接近“原生”Qt API。

我已经测试了 QThread,线程中的段错误显然会使整个应用程序崩溃,并且似乎 QProcess 仅针对生成完全不同的可执行文件时使用。还有其他选择吗?

最佳答案

Windows 完全没有 fork() 以任何公开使用的方式,因此没有 Qt 调用来模拟它;你需要做一些事情,比如从特殊的命令行参数开始。

关于c++ - Qt4 应用程序中 "fork()"的可移植方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/967141/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com