NSTask获取命令的输出

时间:2016-08-26 21:59:29

标签: objective-c macos cocoa

我正在尝试从另一个应用程序中运行OS X上的可执行文件。

NSPipe *pipe = [NSPipe pipe];

NSTask *task = [[NSTask alloc] init];
task.arguments = @[@"param1", @"param2", @"param3", @"param4"];
task.launchPath = @"/usr/bin/myApp";
[task setStandardOutput: pipe];
[task launch];
[task waitUntilExit];

NSFileHandle *file = [pipe fileHandleForReading];
NSData *output = [file readDataToEndOfFile];
NSString *outputString = [[NSString alloc] initWithData:output encoding:NSUTF8StringEncoding];
[file closeFile];
NSLog(@"%@",outputString);`

但输出没什么。虽然,我确信NSTask正在执行。我想我在NSPipe做错了。但我仍然没有看到预期的产量。

感谢。

0 个答案:

没有答案