CHDIR(2)

НАЗВАНИЕ
chdir, fchdir - изменить рабочий каталог

ОБЗОР
#include <unistd.h>

int chdir(const char *path);
int fchdir(int fd);

ОПИСАНИЕ
chdir изменяет текущий каталог каталог на path.

fchdir идентично chdir, только каталог задан в виде открытого файлового дескриптора.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
В случае успеха возвращается ноль. При ошибке возвращается -1, а errno устанавливается должным образом.

ОШИБКИ

В зависимости от файловой системы могут появляться также другие ошибки. Обычные ошибки chdir таковы:

EFAULT
    path указывает за пределы доступного адресного пространства.

ENAMETOOLONG
    path слишком длинно.

ENOENT
    Файл не существует.

ENOMEM
    Ядру не хватило памяти.

ENOTDIR
    Компонент пути, использованный как каталог в path, в действительности таковым не является.

EACCES
    В одном из каталогов, находящихся по пути к path, не разрешен поиск.

ELOOP
    path является зацикленной символической ссылкой, то есть при подстановке возникает ссылка на неё саму.

EIO Произошла ошибка ввода-вывода.

Обычные ошибки для fchdir таковы:

EBADF
    fd не является правильным дескриптором файла.

EACCES
    В каталоге, заданном с помощью fd, не разрешен поиск.

ЗАМЕЧАНИЯ
Прототип для fchdir доступен только, если определена переменная _BSD_SOURCE (или явно или неявно, но задана переменная _POSIX_SOURCE или компиляция осуществляется с флагом -ansi).

СООТВЕТСТВИЕ СТАНДАРТАМ
Системный вызов chdir совместим с SVr4, SVID, POSIX, X/OPEN, 4.4BSD. SVr4 документирует дополнительные коды ошибок EINTR, ENOLINK и EMULTIHOP, но не содержит ENOMEM. POSIX.1 не содержит кодов ошибок ENOMEM и ELOOP. X/OPEN не определяет кодов ошибок EFAULT, ENOMEM и EIO. Системный вызов fchdir совместим с SVr4, 4.4BSD and X/OPEN. SVr4 документирует дополнительные коды ошибок EIO, EINTR, и ENOLINK. X/OPEN документирует дополнительные коды ошибок EINTR и EIO.

СМОТРИ ТАКЖЕ
getcwd(3), chroot(2)

ПЕРЕВОД
Copyright (C) Alexey Mahotkin <alexm@hsys.msk.ru> 1999, Виктор Вислобоков <corochoone@perm.ru> 2003