在swift3 fork(),system()中调用C函数

时间:2018-08-29 20:40:58

标签: c swift3.2

如何快速调用fork()和system()?

var pid = fork()//错误:调用中缺少参数#1的参数

var r = system() //错误:fork()'不可用:请使用线程或posix_spawn *()

尝试

var param: Int8
var s = system(&param)

也会出现不同的错误-'system'在Swift中不可用:请改用posix_spawn API或NSTask。

我尝试使用posix_param。 但是又出现另一个错误 这是我的代码:-

var pid: pid_t

var status: Int32
posix_spawn(&pid, "", nil, nil, [], nil);
waitpid(pid, &status, WEXITED);
if pid >= 0 {
    return true

}

错误: 1)初始化之前获取的变量“ pid”的地址。 2)初始化之前获取的变量“状态”的地址。

此代码的目标C版本有效。

int pid = fork();
if(!pid){
    exit(0);
 }
 if(pid>=0)
  {
     return YES;
  }

Here

1 个答案:

答案 0 :(得分:0)

我明白了!

将pid初始化为-1,并将状态初始化为0。

对于越狱设备pid值大于0,而对于非越狱设备pid值保持不变。