Mac OS X中的多线程

时间:2014-12-11 07:28:02

标签: c windows multithreading macos

在Mac OS X中,Window的CreateProcess()和WaitForSingleObject()相当于什么?

当我的.app运行完毕时,希望我的C程序暂停。

2 个答案:

答案 0 :(得分:1)

OS X中最接近CreateProcess()的是fork()和exec()。但是,如果您尝试从C程序启动.app,则可以使用

执行此操作
System("open <pathToApp>");

第二部分是获得应用程序退出的通知。任何IPC机制都可以帮助您实现这一目标。 IPC Mechanism to communicate between C++ & Objective C提供了一个可行选项的见解。在这种情况下,当应用程序退出时,它可以通知C程序。

如果应用程序没有正常退出,则可能无效。案件是崩溃的时候。这里唯一的方法是轮询pid。 C程序可以使用ps命令获取已启动应用程序的pid。继续检查一下是否存在pid。

答案 1 :(得分:0)

如果您正在运行C程序,并希望执行另一个单独的应用程序并等到它完成,最简单的选择就是使用system() - 请参阅文档here

示例:

#include <stdlib.h>
...

system("myApp");