iPhone应用程序:获取shell命令输出

时间:2013-03-28 17:37:30

标签: ios shell nstask

我正在尝试为iPhone(或iPad)构建一个应用程序,我想在其中运行一些shell命令。我想让它工作的iPhone是越狱。

system()命令似乎用于执行shell命令,但输出和输入当然仍然是个问题。我了解到NSTask可能会被用于这些类型的东西并且它存在,尽管没有记录。 (包括Mac NSTask.h似乎完美无缺)

现在问题在于执行此代码时:

NSTask *task;
task=[[NSTask alloc] init];
task.launchPath=@"/usr/bin/ls";
task.arguments=[NSArray array];
NSPipe *pipe=[NSPipe pipe];
task.standardOutput=pipe;
task.standardError=pipe;
NSFileHandle *output=pipe.fileHandleForReading;
pipe=[NSPipe pipe];
task.standardInput=pipe;
[task launch];

其中pipe用于将来的I / O,它会生成错误读数:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'launch path not accessible'

我已经为unix bin目录尝试了很多可能的路径,但要么我找不到它,要么我的应用程序没有列出文件的权限。 -.-

如何在控制该命令的输入和输出的同时在iPhone上执行shell命令?

1 个答案:

答案 0 :(得分:5)

除非您在越狱手机上运行,​​否则安全政策将拒绝任何直接在iOS中创建辅助流程的尝试。