chdir, fchdir - функции смены рабочего каталога
НАЗВАНИЕchdir, fchdir - функции смены рабочего каталога
СИНТАКСИС
#include
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 и X/OPEN.
SVr4 описывает дополнительные коды ошибок: EIO, EINTR, и
ENOLINK. X/OPEN определяет дополнительные коды ошибок:
EINTR и EIO.