之前很无聊,想知道能不能在iOS平台上执行终端命令。果然,就像 OSX 一样,你可以。这真是太棒了,但是我如何将终端输出的内容输出到文本区域或类似的东西?这没什么大不了的,只是一个有趣的项目。
我正在使用 system("") 来做到这一点。
问问题
898 次
1 回答
1
这一点,我的朋友是使用system
. 我也希望你明白这system
在非越狱的 iDevice 上是不可用的,所以除非你按照iPhone App Minus App Store上的 #1 答案中的说明安装它,否则你不能使用它。
现在,继续前进,您有几个选择。
将命令的输出通过管道传输到文件,然后在应用程序中读取该文件。您的代码应如下所示:
system("myCommand -f \"/path/to/my/file\" > output.txt") NSString *results = [NSString stringWithContentsOfFile:@"output.txt" usedEncoding:nil error:nil]; NSLog(@"%@", results);
使用该函数创建进程
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 回答