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

tom*_*ing 2 shell nstask ios

我正在尝试为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];
Run Code Online (Sandbox Code Playgroud)

pipe未来的I/O 在哪里,它会产生一个错误读数:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'launch path not accessible'
Run Code Online (Sandbox Code Playgroud)

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

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

Pet*_*esh 5

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