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

问题描述 投票:-1回答:1

如何在swift中调用fork()和system()?

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

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

试着

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

同样但它给出了不同的错误 - 在Swift中'system'不可用:改为使用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)初始化之前获取的变量“status”的地址。

该代码的目标C版本正在运行。

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

Here

c swift3.2
1个回答
0
投票

我知道了!

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

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

© www.soinside.com 2019 - 2024. All rights reserved.