可以在非 cocoa 应用中使用launchApplcation调用吗?
我需要一个等效的Windows spawnl(),它从另一个内部执行一个应用程序。是否有与spawn()或exec()等效的OSX?

我可以使用system()调用,但需要向其添加命令行参数。

谢谢!

法案

最佳答案

您确实有能力派生并执行其他进程。

例如:

int myPipe[2];
int err, child_pid;

err = pipe(&myPipe); //creates the pipe - data written to myPipe[1] can be read from myPipe[0]

child_pid = fork();

if(child_pid == 0)
{
    err = dup2(myPipe[1], 1); //set myprogram's standard output to the input of the pipe

    execl("/path/to/myprogram", "arg1", "arg2");
}

int pipefd = myPipe[0];
char buffer[255];
err read(pipefd, buffer, 255); // etc etc

// Ideally you would check that err and child_pid != -1

10-04 15:03