Objective c 通过NSTask执行bash命令的结果
我有一个在Objective-C中使用Objective c 通过NSTask执行bash命令的结果,objective-c,cocoa,nstask,Objective C,Cocoa,Nstask,我有一个在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://code>是否返回执行该命令的成功或失败状态,并保存该
NSTask
的例子
NSTask *task = [[NSTask alloc] init];
[task setLaunchPath:@"/bin/bash"];
[task setArguments:@[ @"-c", @"cp /Directory/file /users/user_name/Desktop" ]];
[task launch];
我想知道[task setArguments://code>是否返回执行该命令的成功或失败状态,并保存该状态以供以后检查。我怎样才能得到那个结果
我想知道[task setArguments://code>是否返回执行该命令的成功或失败状态,并保存该状态以供以后检查
为什么您认为设置尚未启动和运行的任务的参数可能会返回运行命令的状态
我怎样才能得到那个结果
阅读NSTask
、其方法waitUntilExit
及其属性terminationStatus
的文档
也就是说,@ItaiFerber在评论中提出,希望这只是一个示例,您并不是真的使用NSTask
来运行cp
为什么要以这种方式复制文件,而不是使用更直接的API呢?(它有)
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){}