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]
[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]
相关文章推荐
- 用NSTask执行外部命令并获取输出结果的方法
- 用NSTask执行外部命令并获取输出结果的方法
- 用NSTask执行外部命令并获取输出结果的方法
- 用NSTask执行外部命令并获取输出结果的方法
- 用NSTask执行外部命令并获取输出结果的方法
- 标准输出重定向加管道,获取system命令执行结果
- 使用Java代码执行系统命令/shell命令, 并获取输出结果
- 【转】C#执行命令行程序/命令并获取输出结果
- 在程序中调用外部程序,用process返回命令执行结果以及抓取错误信息的方法
- Linux C 程序执行 shell 命令并获取返回结果的方法
- 在.net中悄悄执行dos命令,并获取执行的结果(转)
- python学习五:执行linux命令的两种方法、提高运行效率、进制转换、切片详解、ip和mac获取
- c#.NET 调用命令控制台 并获取执行结果
- 获取DOS命令输出结果
- Delphi通过管道执行外部命令行程序(cmd)并获取返回结果
- Java执行外部命令,并把结果回显到控制台
- python 执行shell命令无法获取返回值的解决方法
- linux下把命令执行的结果输出
- Qt如何执行bash命令,并获取返回结果
- 执行命令并获取结果函数