Manpages

НАЗВАНИЕ

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 [AT] hsys.ru> 1999, Виктор Вислобоков <corochoone [AT] perm.ru> 2003