НАЗВАНИЕ¶
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