做越狱应用和插件开发,经常会调用 system 去执行系统命令,早在 Xcode 7,使用 system 函数提示警告:
'system' is deprecated: first deprecated in iOS 8.0 - Use posix_spawn APIs installd
只是警告,还是可以正常编译和使用,但是升级到 Xcode 9,system 函数就从 SDK 中移除了,不能再使用了,提示:
'system' is unavailable: not available on iOS
替代的方法一般有三种,第一种是使用 posix_spawn,代码如下:
pid_t pid;
char *argv[] = {
"/bin/ls", //path
"-al", //parameter1
"/", //parameter2
NULL
};
posix_spawn(&pid, argv[0], NULL, NULL, argv, NULL);
printf("pid=%d,child pid = %d\n",getpid(),pid);
int stat;
waitpid(pid,&stat,0);
printf("stat is %d\n",stat);
第二种是使用 NSTask,代码如下:
NSTask *task = [[NS