@alienstone

Зачем нужна функция putenv, когда у нас есть переменная environ?

Здравствуйте
В ходе написания программы, которая будет изменять окружение процесса, столкнулся с таким вопросом: зачем нам нужна функция putenv() и как она кардинально может отличаться от простого доступа по указателю к переменной char** environ?
Какой смысл ее вводить? Если только безопасность ( в putenv есть проверка по типу, на сколько я понял ), можно добавить с помощью putenv() новую переменную окружения ну и банальное удобство. Хотя как по мне, особой разницы выносить это в отдельную функцию смысла нет, ради таких причин. Объясните пожалуйста суть, буду очень благодарен
  • Вопрос задан
  • 421 просмотр
Решения вопроса 1
@MiiNiPaa
зачем нам нужна функция putenv()
Чтобы добавлять переменные окружения.
как она кардинально может отличаться от простого доступа по указателю к переменной char** environ?
getenv получает значение одной переменной по имени, в отличии от environ который содержит все пары переменных которые ещё придётся парсить.
putenv добавляет/изменяет пару имя-значение. Доступ через environ не позволяет этого сделать:

If the application modifies the pointers to which environ points, the behavior of all interfaces described in the System Interfaces volume of POSIX.1-2008 is undefined.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы