在swift3 fork(), system()中调用C函数
Call C function in swift3 fork(), system()
如何在swift中调用fork()和system()?
var pid = fork() // 错误:调用中参数 #1 缺少参数
var r = system() //错误:fork()'不可用:请使用线程或posix_spawn*()
尝试过
var param: Int8
var s = system(¶m)
也是,但它给出了不同的错误 - '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) 变量'status'初始化前取的地址
Objective C 此代码的版本。
int pid = fork();
if(!pid){
exit(0);
}
if(pid>=0)
{
return YES;
}
我明白了!
将 pid 初始化为 -1 并将 status 初始化为 0 之后。
对于越狱设备pid值大于0而对于非越狱设备pid值保持不变。
如何在swift中调用fork()和system()?
var pid = fork() // 错误:调用中参数 #1 缺少参数
var r = system() //错误:fork()'不可用:请使用线程或posix_spawn*()
尝试过
var param: Int8
var s = system(¶m)
也是,但它给出了不同的错误 - '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) 变量'status'初始化前取的地址
Objective C 此代码的版本。
int pid = fork();
if(!pid){
exit(0);
}
if(pid>=0)
{
return YES;
}
我明白了!
将 pid 初始化为 -1 并将 status 初始化为 0 之后。
对于越狱设备pid值大于0而对于非越狱设备pid值保持不变。