我正在尝试将 C 控制台程序移植到 iPhone。我已将所有代码导入到我的项目中,当用户单击 UI 上的按钮时,我在 NSOperation 中将其称为 main()。
无论如何,这个程序很复杂,并且创建了许多自己的线程。该程序也多次调用“exit()”——这会使整个 iPhone 应用程序崩溃,但我真的希望用户能够重新启动 C 程序,如果它这样做的话。
我一直在努力清理这些退出条件,并且在 C 程序创建的一些子线程中使用了 pthread_exit()。但是,当我在从 NSOperation 对象创建的线程中调用 pthread_exit() 时,应用程序的主线程得到一个 SIGABRT 信号,整个应用程序崩溃。
我是否正确评估了情况?我是 iOS 编程新手,所以这个信号可能来自其他地方......如果我是正确的,解决这个问题的最佳方法是什么?
(哦,关于使用“return 0”退出这个 NSOperation 线程:我想退出的条件嵌套在 C 程序函数的深处,我想尽可能避免改变程序的结构,因为它已经很复杂了)
提前感谢您的帮助!