我有一个在Objective-C
中使用NSTask
的例子
NSTask *task = [[NSTask alloc] init];
[task setLaunchPath:@"/bin/bash"];
[task setArguments:@[ @"-c", @"cp /Directory/file /users/user_name/Desktop" ]];
[task launch];
我想知道[task setArguments:]
是否返回执行该命令的成功或失败状态,并保存状态以便随后检查。我怎样才能得到这个结果?
答案 0 :(得分:1)
我想知道
[task setArguments:]
是否返回执行该命令的成功或失败状态,并保存状态以便在之后进行检查。
为什么你认为设置尚未启动和运行的任务的参数可能会返回运行命令的状态?
我怎样才能得到这个结果?
阅读NSTask
及其方法waitUntilExit
及其属性terminationStatus
的文档。
也就是说,正如@ItaiFerber在评论中提出的那样,希望这只是一个例子而你并没有真正使用NSTask
来运行cp
。
答案 1 :(得分:0)
NSPipe *pipe = [[NSPipe alloc] init];
NSFileHandle *file = pipe.fileHandleForReading;
NSTask *task = [[NSTask alloc] init];
[task setLaunchPath:@"/bin/bash"];
[task setArguments:@[ @"-c", @"cp /Directory/file /users/user_name/Desktop" ]];
task.standardOutput = pipe;
[task launch];
if(task.isRunning)
[task waitUntilExit];
int status = [task terminationStatus];
if(status == 0){}