НАЗВАНИЕ
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.
СМОТРИ ТАКЖЕ
ПЕРЕВОД
Copyright (C) Alexey Mahotkin <alexm [AT] hsys.ru> 1999, Виктор Вислобоков <corochoone [AT] perm.ru> 2003