c – 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应用程序中使用fork但是我想知道我是否可以使用Qt4提供的任何内容或任何可移植的方式存档相同的功能而无需使用一堆架构#ifdefs?

无论如何,我的目标是这个应用程序只有pthread实现,但我仍然希望保持与“本机”Qt API尽可能接近的程度.

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

解决方法

Windows flat-out没有任何公共消费方式的fork(),因此没有Qt调用来模拟它;你需要做一些事情,比如开始使用特殊的命令行参数或其他东西.

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...