您的位置:首页 > 其它

Cocoa中用NSTask执行外部命令并获取输出结果的方法

2012-06-15 14:19 726 查看
本文介绍了如何通过NSTask在当前目录执行“ls -l -a -t”,并将结果保存在NSString中的基本方法。

[align=left] [/align]
[align=left]NSTask *task;[/align]
[align=left]task = [[NSTask alloc] init];[/align]
[align=left][task setLaunchPath: @"/bin/ls"];[/align]
[align=left] [/align]
[align=left]NSArray *arguments;[/align]
[align=left]arguments = [NSArray arrayWithObjects: @"-l", @"-a", @"-t", nil];[/align]
[align=left][task setArguments: arguments];[/align]
[align=left] [/align]
[align=left]NSPipe *pipe;[/align]
[align=left]pipe = [NSPipe pipe];[/align]
[align=left][task setStandardOutput: pipe];[/align]
[align=left] [/align]
[align=left]NSFileHandle *file;[/align]
[align=left]file = [pipe fileHandleForReading];[/align]
[align=left] [/align]
[align=left][task launch];[/align]
[align=left] [/align]
[align=left]NSData *data;[/align]
[align=left]data = [file readDataToEndOfFile];[/align]
[align=left] [/align]
[align=left]NSString *string;[/align]
[align=left]string = [[NSString alloc] initWithData: data[/align]
[align=left]                               encoding: NSUTF8StringEncoding];[/align]
[align=left]NSLog (@"got\n%@", string);[/align]
[align=left] [/align]
[align=left]当然你可以使用不同的NSFileHandle方法作不同方式的读取,同时你还可以建立一个与调用的程序交互的管道。[/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  cocoa string