是否可以在Objective-C中进行系统调用?Unix系统调用Objective-C
我有以下代码:
if (!system("ls -l")) {
NSLog(@"Successfully executed");
} else {
NSLog(@"Error while executing the command");
}
如何获得输出?
谢谢
是否可以在Objective-C中进行系统调用?Unix系统调用Objective-C
我有以下代码:
if (!system("ls -l")) {
NSLog(@"Successfully executed");
} else {
NSLog(@"Error while executing the command");
}
如何获得输出?
谢谢
这是使用-[NSFileManager contentsOfDirectoryAtPath:error:]
而不是包装内置shell函数并解析输出的完美人选。对于需要输出的通用命令,以及Cocoa中没有“免费”等效功能的地方(只需花时间学习可用的API),NSTask通常是比system()
更好的选择。
您应该使用NSTask。如果你只需要ls
的结果,Cocoa中有更合适的文件系统包装器。
如果你喜欢做C的方式,你可以使用popen
。这也可以用来读取输出。但关于使用Objective-C解决方案的答案可能是更好的答案。
Objective-C不会阻止程序调用system()
或其任何等价物。
CocoaTouch呢。