【发布时间】:2014-03-10 17:05:49
【问题描述】:
当我在 Qt 应用程序中fork() 时,Qt 的哪些部分表现正常? Qt 支持吗?
显然,例如MacOSX 上的 GUI 将无法工作,因为 Cocoa 本身不支持分叉进程。
但还有许多其他部分,例如线程列表等。
QCoreApplication::applicationPid() 似乎返回了错误的值。 (根据here。)
或者说问题有点不同:我必须在我的应用程序中fork(),并且某些部分可能会在子进程中访问 Qt。尽管有所有 Qt GUI 的东西,我在哪里需要特别注意?
【问题讨论】:
-
轶事:我使用
fork()然后gdb attach在 sigsegv 上获取我的 qt 应用程序的回溯 => X 服务器冻结,您必须重新启动计算机。 -
阅读man fork。顺便说一句,为什么有人会分叉,而不是在孩子身上执行?你想做什么?
-
@BЈовић:通过
fork,您可以更轻松地完成某些事情。但这并不是这里问题的真正范围,是否应该使用分叉有很多争论。 -
你有一个链接到文本解释至少一个?