我一直在从事一个项目,并且想知道如何在Xcode中发送终端命令并在弹出窗口中显示结果。我不想使用系统();方法是因为它打开终端。我知道可以使用nstask,我只是不知道如何使用它。谢谢大家!(顺便说一句,这是针对MacOSX而不是iOS的)
要获取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];
}
另外,请注意,这个问题以前曾多次问过。