我有如下代码,没关系,但我有两个问题。
1)如果我向sh分配一些非法的分段,例如@"ls - l",则outString为null。也就是说,它不能捕获错误警告"ls:-:No此类文件或目录ls: l:没有这样的文件或目录“。我该怎么处理呢?
2)如何实现此函数:给定应用程序的当前目录为"/user/Doc",并且执行sh = @"cd /",然后执行sh = @"ls -l",以便在下一个循环中查看"/“目录下的内容。但是,当新循环开始时,当前目录将恢复为"/user/Doc“。如何保持上一个循环的任务环境?
此外,我是否可以像直接在终端上工作一样,一直运行"/bin/sh“?
NSString *sh = @"ls -l";
while(sh != @"end"){
NSTask *shData = [[NSTask alloc] init];
[shData setLaunchPath: @"/bin/sh"];
NSArray *args;
args = [NSArray arrayWithObjects: @"-c", sh, nil];
[shData setArguments: args];
NSPipe *myPipe;
myPipe = [NSPipe pipe];
[shData setStandardOutput: myPipe];
[shData setStandardInput:[NSPipe pipe]];
NSFileHandle *file;
file = [myPipe fileHandleForReading];
[shData launch];
NSData *data1;
data1 = [file readDataToEndOfFile];
NSString *outString;
outString = [[NSString alloc] initWithData: data1 encoding: NSUTF8StringEncoding];
NSLog(@"%@",outString);
}发布于 2012-05-16 15:25:36
,
https://stackoverflow.com/questions/10621348
复制相似问题