Назва
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.