我正在尝试为 iPhone(或 iPad,就此而言)构建一个应用程序,我想在其中运行一些 shell 命令。我希望它工作的 iPhone没有越狱。
该system()
命令似乎在执行 shell 命令时起作用,但输出和输入当然仍然是一个问题。我了解到它NSTask
可以用于这类事情并且它存在,尽管没有记录。(包括 MacNSTask.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'
我已经为 unixbin
目录尝试了很多可能的路径,但要么我找不到它,要么我的应用程序没有列出文件的权限。-.-
如何在 iPhone 上执行 shell 命令同时控制该命令的输入和输出?