在iOS代码中执行命令行程序,通常使用system("xxx “); iOS8后就无法调用了,Xcode提示:‘system’ is deprecated: first deprecated in iOS 8.0 –
Use posix_spawn APIs instead.
解决方法:
方法1:使用iOS7的sdk编译
方法2:使用posix_spawn替代
Use posix_spawn APIs instead.
解决方法:
方法1:使用iOS7的sdk编译
方法2:使用posix_spawn替代
#include <spawn.h>
extern char **environ;
//执行系统命令
int runcmd(char *cmd, char *opt1, char *opt2, char *opt3)
{
posix_spawnattr_t attr;
posix_spawn_file_actions_t fact;
pid_t pid;
char *args[5];
args[0]=cmd;
if(opt1)
args[1]=opt1;
else
args[1]=NULL;
if(opt2)
args[2]=opt2;
else
args[2]=NULL;
if(opt3)
args[3]=opt3;
else
args[3]=NULL;
posix_spawnattr_init(&attr);
posix_spawn_file_actions_init(&fact);
posix_spawn(&pid,cmd,&fact,&attr,args,environ);
perror("posix_spawn");
printf("pid=%d,child pid = %d\n",getpid(),pid);
int stat=0;
waitpid(pid,&stat,0);
printf("stat is %d\n",stat);
return 0;
}