/ usr / bin /终端命令适用于iPhone

时间:2012-07-26 21:17:11

标签: iphone binary terminal

是否有可以找到所有/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]; 

1 个答案:

答案 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带来什么。