0

有没有地方可以找到所有/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]; 
4

1 回答 1

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

于 2012-07-26T21:48:55.260 回答