Вызов функции C в swift3 fork (), system () - PullRequest
0 голосов
/ 29 августа 2018

Как вызвать fork () и system () в swift?

var pid = fork () // Ошибка: отсутствует аргумент для параметра # 1 в вызове

var r = system () // Ошибка: fork () 'недоступна: используйте потоки или posix_spawn * ()

Пробовал

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

также, но выдает другую ошибку - 'system' недоступна в Swift: используйте API posix_spawn или 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;
  }

Здесь

1 Ответ

0 голосов
/ 05 сентября 2018

Я понял!

После инициализации pid -1 и статуса 0. 0. 1004 *

Для jailbroken значение pid устройства больше 0, тогда как для non jailbroken значение pid устройства остается неизменным.

...