Каково возвращаемое значение функции, которая использует exec () следующим образом? - PullRequest
0 голосов
/ 20 мая 2018

У меня есть некоторая функция, скажем, func, которая выглядит следующим образом:

int func(...)
{
    if(error(...))
        return -1;
    exec(...);
    return -1; //exec failed
}

Таким образом, func возвращает -1 в случае ошибки, но что она возвращает в случае успеха?

Это хорошая практика или склонность к ошибкам, если я делаю что-то подобное в основной функции?

if(func(...) == -1)
   exit(EXIT_FAILURE);
//do something

1 Ответ

0 голосов
/ 20 мая 2018

exec () вернется только в случае ошибки при выполнении другого процесса.Если все было успешно при создании другого процесса с exec (), то exec () никогда не вернется.Допустим, вы успешно выполнили процесс с помощью exec (), но в какой-то момент этого процесса произошла ошибка сегментации.exec () не вернет -1 в этом случае.Читайте man 3 exec

...