您如何从Xcode C项目中运行终端外壳命令并从终端获取返回结果



我一直在从事一个项目,并且想知道如何在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];
}

另外,请注意,这个问题以前曾多次问过。

最新更新