Я нашел пример кода с использованием posix_spaw() из здесь.
На этой странице run_cmd() определяется, как показано ниже.
void run_cmd(char *cmd) {
...
status = posix_spawn(&pid, "/bin/sh", NULL, NULL, argv, environ);
if (status == 0) {
printf("Child pid: %i\n", pid);
} else {
printf("posix_spawn: %s\n", strerror(status));
}
}
У меня вопрос: «Можно ли передавать posix_spawn() возвращаемое значение strerror() в качестве аргумента».
Если это не нормально, как лучше всего обрабатывать ошибки posix_spawn()?





Да, posix_spawn() возвращает 0 в случае успеха и errno в случае неудачи. Так что можно передать результат в strerror.
Согласно документация:
The
posix_spawn()andposix_spawnp()functions fail only in the case where the underlyingfork(2)orvfork(2)call fails; in these cases, these functions return an error number, which will be one of the errors described forfork(2)orvfork(2).In addition, these functions fail if:
ENOSYSFunction not supported on this system.
Также из источника вы можете видеть, что он просто возвращает errno.
Вы проверяли документация для
posix_spawn?