を使用posix_spawn()
して質問に答えます。
#include <spawn.h>
extern char **environ;
(...)
pid_t pid;
char *argv[] = {
"/Applications/Xcode.app/Contents/Developer/usr/bin/opendiff",
"/Users/LukeSkywalker/Documents/doc1.rtf",
"/Users/LukeSkywalker/Documents/doc2.rtf",
NULL
};
posix_spawn(&pid, argv[0], NULL, NULL, argv, environ);
waitpid(pid, NULL, 0);
または、NSTask を使用できます。
NSTask *task = [[NSTask alloc] init];
task.launchPath = @"/Applications/Xcode.app/Contents/Developer/usr/bin/opendiff";
task.arguments = [NSArray arrayWithObjects:
@"/Users/LukeSkywalker/Documents/doc1.rtf",
@"/Users/LukeSkywalker/Documents/doc2.rtf",
nil];
[task launch];
[task waitUntilExit];
同期する必要がない場合は、呼び出しを削除してくださいwaitpid()
(必ず別の場所で呼び出してください。そうしないと、アプリが終了するまでゾンビ プロセスになってしまいます) または[task waitUntilExit]
.