是否可以在 Objective-C 中进行系统调用?
我有以下代码:
if (!system("ls -l")) {
NSLog(@"Successfully executed");
} else {
NSLog(@"Error while executing the command");
}
如何获得输出?
谢谢
是否可以在 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 可以。