The OpenNET Project / Index page

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

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

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

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

    НАЗВАНИЕ

    getcwd, get_current_dir_name, getwd - возвращает текущий рабочий каталог  

    СИНТАКСИС

    #include <unistd.h>
    
    char *getcwd(char *buf, size_t size);
    char *get_current_dir_name(void);
    char *getwd(char *buf);
    
     

    ОПИСАНИЕ

    Функция getcwd() копирует абсолютный путь к текущему рабочему каталогу в массиве, на который указывает buf, имеющий длину size.

    Если текущий абсолютный путь требует буфера, длина которого превышает size, то возвращается NULL, а errno принимает значение ERANGE; приложение должно проверить, возникла эта ошибка или нет и, если необходимо, выделить буфер большего размера.

    Если buf равно NULL, то поведение getcwd() становится неопределенным.

    Расширение стандарта POSIX.1 для Linux (libc4, libc5, glibc) предусматривает следующее: если при вызове buf равно NULL, getcwd(), то буфер выделяется динамически с помощью функции malloc(). В этом случае выделенный буфер имеет размер size; если size равно нулю, то выделяется buf необходимого размера. Возможно (и даже рекомендуется) после использования освободить выделенные таким образом буферы с помощью free().

    get_current_dir_name (которая имеет прототип только в том случае, если определено значение _GNU_SOURCE) выделит с помощью malloc(3) массив, достаточно большой для помещения в него имени текущего каталога. Если установлена и имеет правильное значение переменная окружения PWD, то будет возвращено ее значение.

    getwd (имеющая прототип только в том случае, если определено значение _BSD_SOURCE или _XOPEN_SOURCE_EXTENDED) не будет выделять память с помощью malloc(3). Аргумент buf должен быть указателем на массив длиной как минимум PATH_MAX байтов. getwd возвращает только первые PATH_MAX байтов реального пути.  

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

    NULL при ошибках (например, текущий каталог считывать невозможно) и при установленной соответствующим образом errno; при успешной работе возвращается buf. Содержимое массива buf при ошибке не определено.  

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

    EINVAL
    Аргумент size равен нулю, а buf не является пустым указателем.
    ERANGE
    Аргумент size меньше, чем длина имени текущего каталога. Необходимо выделить массив большего размера и попробовать еще раз.
    EACCES
    Нет прав на чтение или поиск одного из компонентов пути файла.
     

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

    POSIX.1  

    СМ. ТАКЖЕ

    chdir(2), free(3), malloc(3).


     

    Index

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


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




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

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