我已经读过这些:
我试图从open命令中获取PID。我们有一个内部多平台C ++库,例如(过度简化):
pid = launch(char* command)
// Many other parameters and variations (sync/async,timeout,stdout,stderr,stdin )
但是在OS X上,库用户经常使用命令:
Open myExe myArgs -F
似乎:
我对任何解决方案都非常开放:
答案 0 :(得分:0)
回过头来写我的解决方案答案,我不喜欢它,因为我需要使用一些可可的东西,但它有效......
我已经获得了所需的“前景”行为并使用以下代码获得了Pid:
NSString * arg1 = @"--my_arg";
NSString * arg2 = @"arg_value";
NSArray * myArray2 = [NSArray arrayWithObjects:arg1,arg2,nil];
NSMutableDictionary* dict = [[NSMutableDictionary alloc] init];
[dict setObject:myArray2 forKey:NSWorkspaceLaunchConfigurationArguments];
bURL = [NSURL fileURLWithPath:@"/path/to/appli.app"];
NSRunningApplication * inst = [ws launchApplicationAtURL:bURL options:NSWorkspaceLaunchNewInstance configuration:dict error:nil];
pid_t pid = [inst processIdentifier];
在Xcode中,您可以在我的file.mm中使用上面的代码,其签名在我的file.h中声明。 Xcode将自动管理可可物。