dirname()

Определить родительскую директорию файла по его заданному пути

Прототип:

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

Аргументы:

path
Строка для разбора.

Библиотека:

libc

Описание:

Функция dirname() получает на вход указатель на символьную строку, которая содержит путь к файлу/директории, и возвращает указатель на строку, содержащую путь к родительской директории этого объекта. Завершающие символы “/” исходного пути path игнорируются.

Если путь не содержит символ “/”, path является указателем на NULL или указывает на пустую строку, то функция dirname() возвращает указатель на строку, состоящую из “.” (точки).

Вместе функции dirname() и basename() дают полный путь к файлу. Выражение dirname( path ) получает путь к директории, в которой находится basename( path ).


Note: Функция dirname() может изменять строку, на которую указывает path, и может вернуть указатель на статическое хранилище.

Возвращаемое значение:

Указатель на строку, содержащую родительскую директорию файла. Если path - указатель на NULL или на пустую строку, возвращается указатель на строку ".".

Примеры:

Ввод → вывод

Следующий фрагмент кода считывает путь к файлу, меняет текущую рабочую директорию на родиетльскую и открывает файл:

char path[BUFF_SIZE], *pathcopy;
int fd;
fgets( path, BUFF_SIZE, stdin );
pathcopy = strdup( path );
chdir( dirname( pathcopy ) );
fd = open( basename( path ), O_RDONLY );

Классификация:

POSIX 1003.1 XSI

Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Да
В потоке
Да

Тематические ссылки:

basename()




Предыдущий раздел: Описание API системной библиотеки