我一直在做一个项目,想知道如何在 xcode 中发送终端命令并在弹出窗口中显示结果。我不想使用系统();方法,因为它打开终端。我知道可以使用 NSTasks,但我只是不知道如何使用它。谢谢大家!(顺便说一句,这是针对 macosx 而不是 ios)
问问题
2889 次
1 回答
1
要获得 shell 命令的输出,您需要打开一个管道并从中读取数据。这是我用于此任务的内容:
static NSString *outputForShellCommand(NSString *command) {
FILE *fp;
char data[1024];
NSMutableString *finalRet = [[NSMutableString alloc] init];
fp = popen([command UTF8String], "r");
if (fp == NULL) {
[finalRet release];
return nil;
}
while (fgets(data, 1024, fp) != NULL) {
[finalRet appendString:[NSString stringWithUTF8String:data]];
}
if (pclose(fp) != 0) {
[finalRet release];
return nil;
}
return [NSString stringWithString:finalRet];
}
于 2012-11-12T06:07:48.250 回答