2

之前很无聊,想知道能不能在iOS平台上执行终端命令。果然,就像 OSX 一样,你可以。这真是太棒了,但是我如何将终端输出的内容输出到文本区域或类似的东西?这没什么大不了的,只是一个有趣的项目。
我正在使用 system("") 来做到这一点。

4

1 回答 1

1

这一点,我的朋友是使用system. 我也希望你明白这system在非越狱的 iDevice 上是不可用的,所以除非你按照iPhone App Minus App Store上的 #1 答案中的说明安装它,否则你不能使用它。

现在,继续前进,您有几个选择。

  1. 将命令的输出通过管道传输到文件,然后在应用程序中读取该文件。您的代码应如下所示:

    system("myCommand -f \"/path/to/my/file\" > output.txt")
    
    NSString *results = [NSString stringWithContentsOfFile:@"output.txt" usedEncoding:nil error:nil];
    NSLog(@"%@", results);
    
  2. 使用该函数创建进程popen,然后将输出直接通过管道传输到您的应用程序中:

    NSFileHandle *openProcessRead(const char *command)
    {
        FILE *fPtr = popen(command, "r");
    
        NSFileHandle *fileHandle = [[NSFileHandle alloc] initWithFileDescriptor:fileno(fPtr) closeOnDealloc:YES];
    
        return fileHandle;
    }
    

    您现在可以使用NSFileHandle文档来做您需要的事情。

于 2012-06-18T12:02:40.037 回答