Scroll to navigation

CHDIR(2) Руководство программиста Linux 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
1997-08-21 Linux 2.0.30