The OpenNET Project / Index page

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

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

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

dirname (3)
  • dirname (1) ( Solaris man: Команды и прикладные программы пользовательского уровня )
  • dirname (1) ( FreeBSD man: Команды и прикладные программы пользовательского уровня )
  • dirname (1) ( Русские man: Команды и прикладные программы пользовательского уровня )
  • dirname (1) ( Linux man: Команды и прикладные программы пользовательского уровня )
  • dirname (1) ( POSIX man: Команды и прикладные программы пользовательского уровня )
  • dirname (3) ( Solaris man: Библиотечные вызовы )
  • dirname (3) ( FreeBSD man: Библиотечные вызовы )
  • >> dirname (3) ( Русские man: Библиотечные вызовы )
  • dirname (3) ( Linux man: Библиотечные вызовы )
  • dirname (3) ( POSIX man: Библиотечные вызовы )
  •  

    НАЗВАНИЕ

    dirname, basename - обрабатывают элементы пути к файлу  

    СИНТАКСИС

    #include <libgen.h>
    
    char *dirname(char *path);
    char *basename(char *path);
    
     

    ОПИСАНИЕ

    dirname и basename разбивают путь к файлу (заканчивающийся NULL) на каталоги и имя файла. Обычно, dirname возвращает строку содержащую путь к файлу до последнего знака '/', а basename возвращает строку содержащую часть после последнего знака '/'. Последний знак '/' не считается компонентом пути.

    Если path не включает в себя слэш, то dirname возвращает строку ".", а basename возвращает копию path. Если path это строка из "/", то dirname и basename возвращают "/". Если path нулевая строка или указывает на нее, то dirname и basename возвращают строку ".".

    Объеденив строки возвращаемые dirname, и basename можно получить полный путь.

    Функции dirname и basename могут изменить содержание path, поэтому если вы хотите сохранить путь, то он не должен обрабатываться этими функциями. Более того, dirname и basename могут вернуть указатели на постоянно выделенную память которая может быть перезаписана соответствующими вызовами.

    Ниже следует список примеров (SUSv2) показывающих строки возвращаемые dirname и basename для различных путей:

    path            dirname         basename
    "/usr/lib"      "/usr"          "lib"
    "/usr/"         "/"             "usr"
    "usr"           "."             "usr"
    "/"             "/"             "/"
    "."             "."             "."
    ".."            "."             ".."
    
     

    ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ

    char *dirc, *basec, *bname, *dname;
    char *path = "/etc/passwd";
    
    dirc = strdup(path);
    basec = strdup(path);
    dname = dirname(dirc);
    bname = basename(basec);
    printf("dirname=%s, basename=%s\n", dname, bname);
    free(dirc);
    free(basec);
    
     

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

    Функции dirname и basename возвращает указатели на строки завершающиеся NULL.  

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

    В версиях glibc включая 2.2.1, dirname не правильно обрабатывает пути оканчивающиеся на '/', и генерирует нарушение элементов пути.  

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

    SUSv2  

    СМ. ТАКЖЕ

    dirname(1), basename(1),


     

    Index

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


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




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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