CHDIR(2)

JMÉNO
chdir, fchdir - změna pracovního adresáře

SYNTAXE
#include <unistd.h>

int chdir(const char *path);
int fchdir(int fd);

POPIS
chdir změní současný adresář na adresář specifikovaný v path.

fchdir má tutéž funkci jako chdir, pouze s tím rozdílem, že adresář je zadán jako otevřený deskriptor souboru.

NÁVRATOVÁ HODNOTA
Bylo-li volání úspěšné, je vrácena nula, jinak -1 a je nastavena proměnná errno .

CHYBY
V závislosti na druhu souborového systému mohou být vráceny i jiné chyby. Nejobvyklejší chyby pro chmod jsou vypsány zde:

EPERM
    Proces nemá právo na vstup do adresáře (execute permission).

EFAULT
    path ukazuje mimo vám přístupný adresový prostor.

ENAMETOOLONG
    path je příliš dlouhá.

EBADF
    Deskriptor souboru fd není platný.

ENOENT
    Soubor neexistuje.

ENOMEM
    Nedostatek paměti pro kernel.

ENOTDIR
    Některá část cesty není adresář.

EACCES
    V cestě není povoleno prohledávání adresářů.

ELOOP
    path obsahuje cyklické odkazy (např. přes symbolický odkaz)

Obvyklé chyby fchmod jsou zde:

EBADF
    Deskriptor je neplatný.

EPERM
    Viz výše.

EROFS
    Viz výše.

SPLŇUJE STANDARDY
Volání chdir je kompatibilní se SVr4, SVID, POSIX, X/OPEN, 4.4BSD. SVr4 dokumentuje navíc chyby EIO, EINTR, ENOLINK a EMULTIHOP, ale nemá ENOMEM a EPERM. POSIX.1 nemá EPERM, ENOMEM a ELOOP. Volání fchdir splňuje SVr4 a 4.4BSD. SVr4 dokumentuje navíc EIO, EINTR a ENOLINK.

VIZ TÉŽ
getcwd(3), chroot(2)