是否有可以找到所有/usr/bin/
命令目录的地方?我知道iPhone技术上不支持NSTask,但这是出于教育目的,因此我导入了NSTask.h。如果我运行/usr/bin/cal
,那么它运行正常,但它不适用于/usr/bin/ls
,我无法找出原因。
*注意:我尝试了/usr/bin/whereis ls
,但这也让我“找不到路径错误”
这是我的代码:
NSTask *task = [[NSTask alloc] init];
[task setLaunchPath: @"/usr/bin/cal"]; //@"/usr/bin/ls" produces cannot find path error
NSPipe *pipe;
pipe = [NSPipe pipe];
[task setStandardOutput: pipe];
NSFileHandle *file;
file = [pipe fileHandleForReading];
[task launch];
NSData *data;
data = [file readDataToEndOfFile];
NSString *string;
string = [[NSString alloc] initWithData: data encoding: NSUTF8StringEncoding];
label.numberOfLines=0;
label.text = string;
[label sizeToFit];
[string release];
[task release];
答案 0 :(得分:1)
由于iOS基本上是Mac OS X,基本上是Darwin,基本上是Unix,你应该在你的Mac / Darwin / Unix系统上占据一席之地。
在您的终端(OSX)中,您获得:
$ which ls
/bin/ls
$
现在,您可以使用任何目录(您已读取+执行访问权限)运行此命令以获取其内容。您可以使用NSTask
:
$ /bin/ls /bin
(directory content of /bin)
...
$ /bin/ls /usr/bin
(directory content of /usr/bin)
...
我不知道这会给非越狱的iDevice带来什么。