【发布时间】:2014-05-20 11:09:30
【问题描述】:
我正在通过应用程序中的命令提示符执行程序。这在 OSX 10.8.5、10.9.x 版本上运行良好,没有任何问题。但我的应用程序也需要在 10.7.5 上运行。执行命令时,相同的代码在 10.7.5 上失败。我查看了执行的命令字符串,这是正确的。对这个问题有任何想法吗?
我遇到以下错误:
/bin/sh: line 1: 1028 Segmentation fault: 11
下面是我用来执行命令的代码。
NSTask *task;
task = [[NSTask alloc] init];
[task setLaunchPath: @"/bin/sh"];
NSArray *arguments = [NSArray arrayWithObjects:
@"-c" ,
[NSString stringWithFormat:@"%@", commandToRun],
nil];
//NSLog(@"run command: %@",commandToRun);
[task setArguments: arguments];
NSPipe *pipe;
pipe = [NSPipe pipe];
[task setStandardOutput: pipe];
NSFileHandle *file;
file = [pipe fileHandleForReading];
[task launch];
NSData *data;
data = [file readDataToEndOfFile];
NSString *output;
output = [[NSString alloc] initWithData: data encoding: NSUTF8StringEncoding];
return output;
【问题讨论】:
标签: objective-c macos cocoa