The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

putenv (3)
  • putenv (3) ( Solaris man: Библиотечные вызовы )
  • putenv (3) ( FreeBSD man: Библиотечные вызовы )
  • >> putenv (3) ( Русские man: Библиотечные вызовы )
  • putenv (3) ( Linux man: Библиотечные вызовы )
  • putenv (3) ( POSIX man: Библиотечные вызовы )
  •  

    НАЗВАНИЕ

    putenv - добавляет или изменяет переменную окружения  

    СИНТАКСИС

    #include <stdlib.h>
    
    int putenv(char *string);
    
     

    ОПИСАНИЕ

    Функция putenv() изменяет значение переменной окружения или добавляет к ней новое. Аргумент string должен быть представлен в форме name=value. Если name не присутствует в списке переменных окружения, то string добавляется к окружению. Если name уже существует, то величина переменной name изменяется на value. Строка, на которую указывает string, становится частью окружения, так что ее изменение приведет к изменению окружения.  

    ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ

    Функция putenv() возвращает 0, если завершила работу корректно, или -1 при ошибках.  

    НАЙДЕННЫЕ ОШИБКИ

    ENOMEM
    - недостаточно пространства для расширения окружения.
     

    ЗАМЕЧАНИЯ

    Функция putenv() требует повторного ее использования в libc4, libc5 и glibc2.0, но оно не требуется в glibc2.1.

    Описание для libc4, libc5, glibc: если аргумент string имеет форму name и не содержит символ `=', то переменная name изымается из окружения. Если putenv() выделяет новый массив environ и предыдущий массив также был выделен в putenv(), то данный массив будет освобожден. В любом случае, прежнее пространство, ассоциированное с переменными окружения, не будет освобождено.

    Версии для libc4, libc5 и glibc 2.1.2 соответствуют SUSv2: используется указатель string, передаваемый putenv(). Строка, например, становится частью окружения; последующее ее изменение приводит к изменению окружения. Таким образом, ошибочным будет вызывать putenv() с автоматической переменной в качестве аргумента, т.к. после возврата из вызываемой функции строка string по-прежнему останется частью окружения. Однако, версии glibc 2.0-2.1.1 работают по-другому: используется копия строки. С одной стороны, это вызывает утечку памяти, с другой стороны, это не соответствует SUSv2. Эта ошибка исправлена в glibc2.1.2.

    Версия BSD4.4, как и glibc 2.0, использует копию строки.

    SUSv2 удаляет `const' из прототипа (что также реализовано в glibc 2.1.3).  

    СООТВЕТСТВИЕ СТАНДАРТАМ

    SVID 3, POSIX, BSD 4.3  

    СМ. ТАКЖЕ

    getenv(3), setenv(3), unsetenv(3), environ(5)


     

    Index

    НАЗВАНИЕ
    СИНТАКСИС
    ОПИСАНИЕ
    ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
    НАЙДЕННЫЕ ОШИБКИ
    ЗАМЕЧАНИЯ
    СООТВЕТСТВИЕ СТАНДАРТАМ
    СМ. ТАКЖЕ


    Поиск по тексту MAN-ов: 




    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2020 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру