Назва

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, and ENOLINK. Документи X/OPEN додатково містять коди помилок EINTR і EIO.

Дивись також

?getcwd(3), ?chroot(2)