Использование posix_spawnp выдает сообщение об ошибке «Ошибка открытия терминала:» - PullRequest
0 голосов
/ 25 июня 2018

Я пытаюсь использовать posix_spawnp(NULL, pgm, NULL, NULL, (char**) argv, NULL) в консольном приложении, а не в форке и остальном.Проблема заключается в том, что я запускаю сообщение об «Ошибка открытия терминала:».Для приложения с графическим интерфейсом это точное сообщение, скажем, nano вы получаете Error opening terminal: unknown., mc вы получаете The TERM environment variable is unset!, но я ввел в среду TERM = xterm, это почти как если бы posix_spawnp не былне привносит ли родительскую среду, что я думал, NULL должен был сделать?

1 Ответ

0 голосов
/ 25 июня 2018

posix_spawnp не копирует родительскую среду, если envp равно NULL.Вы должны отправить копию, используя переменную environ, которая определена как extern char **environ, чтобы вы получили posix_spawnp(NULL, pgm, NULL, NULL, (char**) argv, environ)

...