0

我一直在做一个项目,想知道如何在 xcode 中发送终端命令并在弹出窗口中显示结果。我不想使用系统();方法,因为它打开终端。我知道可以使用 NSTasks,但我只是不知道如何使用它。谢谢大家!(顺便说一句,这是针对 macosx 而不是 ios)

4

1 回答 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 回答