【发布时间】:2011-05-18 14:54:56
【问题描述】:
我正在开发一个相对简单、独立的“进程启动器”,我想在 Windows(XP、Vista、7)、Linux(Ubuntu 10.10)上工作,尤其是 Mac OS X (10.6)。 Linux 和 Windows 基本上可以工作,但我在使用 Mac 版本时遇到了一些问题。
我希望 fork() 和 exec() 函数在 Mac OS 下的工作方式与在 Linux 下的工作方式相同。所以我的第一个问题是:
- 我应该使用这些来创建一个 在 Mac 上处理或是否有任何 平台特定功能 用过?
我当前的调试代码(在 Linux 下运行良好)如下所示:
pid_t processId = 0;
if (processId = fork()) == 0)
{
const char * tmpApplication = "/Path/to/TestApplication";
int argc = 1;
char * argv[argc + 1];
argv[0] = tmpApplication;
argv[1] = NULL;
execv(tmpApplication, argv);
}else
{
//[...]
}
知道这是否也可以在 Mac OS X 下工作,因为我的子进程根本没有启动,而不会出现任何错误。
谢谢!
【问题讨论】: