chdir(2)

NAZWA
chdir, fchdir - zmienia katalog roboczy

BIBLIOTEKA
Standardowa biblioteka C (libc, -lc)

SKŁADNIA
#include <unistd.h>

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

    Wymagane ustawienia makr biblioteki glibc (patrz feature_test_macros(7)):

fchdir():
    _XOPEN_SOURCE >= 500
        || /* Od glibc 2.12: */ _POSIX_C_SOURCE >= 200809L
        || /* glibc do 2.19 włącznie: */ _BSD_SOURCE

OPIS
chdir zmienia bieżący katalog roboczy procesu wywołującego na katalog podany w path.

fchdir() jest identyczne jak chdir(), lecz katalog jest podawany jako deskryptor otwartego pliku.

WARTOŚĆ ZWRACANA
Po pomyślnym zakończeniu zwracane jest zero. Po błędzie zwracane jest -1 i ustawiane errno, wskazując błąd.

BŁĘDY
Dla niektórych systemów plików mogą być zwracane inne błędy niż opisane poniżej. Najogólniejsze błędy chdir() to:

EACCES
    Brak praw do przeszukiwania dla jednego ze składników ścieżki path (zob. też path_resolution(7)).

EFAULT
    path wskazuje poza dostępną dla użytkownika przestrzeń adresową.

EIO Wystąpił błąd wejścia/wyjścia.

ELOOP
    Podczas rozwiązywania path napotkano zbyt wiele dowiązań symbolicznych.

ENAMETOOLONG
    path jest zbyt długie.

ENOENT
    Plik podany w path nie istnieje.

ENOMEM
    Brak pamięci jądra.

ENOTDIR
    Składowa ścieżki path nie jest katalogiem.

Ogólne błędy fchdir() to:

EACCES
    Brak praw do przeszukiwania katalogu otwartego przez deskryptor fd.

EBADF
    fd nie jest prawidłowym deskryptorem pliku.

ENOTDIR
    fd nie odnosi się do katalogu.

STANDARDY
POSIX.1-2024.

HISTORIA

chdir()
    SVr4, POSIX.1-1988, 4.4BSD.

fchdir()
    SVr4, 4.4BSD, SUSv1, POSIX.1-2001 XSI, POSIX.1-2008.

UWAGI
Bieżący katalog roboczy jest punktem początkowym do interpretacji ścieżek względnych (niezaczynających się od „/”).

Proces potomny utworzony za pomocą fork(2) dziedziczy bieżący katalog roboczy swojego procesu macierzystego. Bieżący katalog roboczy jest pozostawiany bez zmiany przez execve(2).

ZOBACZ TAKŻE
chroot(2), getcwd(3), path_resolution(7)

TŁUMACZENIE
Tłumaczenie niniejszej strony podręcznika: Andrzej Krzysztofowicz <ankry@green.mf.pg.gda.pl> i Michał Kułach <michal.kulach@gmail.com>

Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 (https://www.gnu.org/licenses/gpl-3.0.html) lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.

Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-list@lists.sourceforge.net.