Provided by: manpages-pl-dev_4.15.0-9_all bug

NAZWA

       symlink, symlinkat - tworzenie nowej nazwy dla pliku

SKŁADNIA

       #include <unistd.h>

       int symlink(const char *target, const char *linkpath);

       #include <fcntl.h>           /* Definicja stałych AT_* */
       #include <unistd.h>

       int symlinkat(const char *target, int newdirfd, const char *linkpath);

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

       symlink():
           _XOPEN_SOURCE >= 500 || _POSIX_C_SOURCE >= 200112L
               || /* Wersje glibc <= 2.19: */ _BSD_SOURCE

       symlinkat():
           Since glibc 2.10:
               _POSIX_C_SOURCE >= 200809L
           Before glibc 2.10:
               _ATFILE_SOURCE

OPIS

       symlink()  tworzy  dowiązanie  symboliczne o nazwie linkpath które zawiera łańcuch znakowy
       target.

       Dowiązania  symboliczne  są  interpretowane  w  czasie  działania,  tak  jakby   zawartość
       dowiązania była podstawiana do ścieżki, przeglądanej by znaleźć plik lub katalog.

       Dowiązania  symboliczne  mogą  zawierać  składniki  ..,  które  (jeśli używane na początku
       dowiązania) odnoszą się do katalogów nadrzędnych katalogu, w którym  dane  dowiązanie  się
       znajduje.

       Dowiązanie  symboliczne  (znane  również  pod nazwą miękiego dowiązania) może wskazywać na
       plik istniejący, lub nie istniejący; ten drugi przypadek znany jest pod pojęciem wiszącego
       dowiązania.

       Prawa  dostępu  dla  dowiązania  symbolicznego  są  nieistotne;  jego  właścicielstwo jest
       ignorowane  podczas   podążania   za   nim,   lecz   sprawdzane   podczas   usuwania   lub
       przemianowywania, gdy dowiązanie jest w katalogu z ustawionym bitem `sticky' (S_ISVTX).

       Jeśli ścieżka linkpath istnieje to nie będzie nadpisana.

   symlinkat()
       The symlinkat()  system call operates in exactly the same way as symlink(), except for the
       differences described here.

       If the pathname given in linkpath is relative, then it  is  interpreted  relative  to  the
       directory referred to by the file descriptor newdirfd (rather than relative to the current
       working directory of the calling  process,  as  is  done  by  symlink()   for  a  relative
       pathname).

       If  linkpath  is  relative  and  newdirfd  is the special value AT_FDCWD, then linkpath is
       interpreted relative to the  current  working  directory  of  the  calling  process  (like
       symlink()).

       If linkpath is absolute, then newdirfd is ignored.

       See openat(2)  for an explanation of the need for symlinkat().

WARTOŚĆ ZWRACANA

       On  success, zero is returned.  On error, -1 is returned, and errno is set to indicate the
       error.

BŁĘDY

       EACCES Write access to the  directory  containing  linkpath  is  denied,  or  one  of  the
              directories  in  the path prefix of linkpath did not allow search permission.  (See
              also path_resolution(7).)

       EBADF  (symlinkat())  linkpath is relative but newdirfd is neither AT_FDCWD  nor  a  valid
              file descriptor.

       EDQUOT The  user's quota of resources on the filesystem has been exhausted.  The resources
              could be inodes or disk blocks, depending on the filesystem implementation.

       EEXIST linkpath już istnieje.

       EFAULT target lub linkpath wskazuje poza dostępną dla użytkownika przestrzeń adresową.

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

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

       ENAMETOOLONG
              target lub linkpath było zbyt długie.

       ENOENT A directory component in linkpath does not exist or is a dangling symbolic link, or
              target or linkpath is an empty string.

       ENOENT (symlinkat())   linkpath  is a relative pathname and newdirfd refers to a directory
              that has been deleted.

       ENOMEM Brak pamięci jądra.

       ENOSPC Na urządzeniu, zawierającym plik nie ma miejsca na kolejny wpis w katalogu.

       ENOTDIR
              Składnik użyty jako katalog w linkpath w rzeczywistości nie jest katalogiem.

       ENOTDIR
              (symlinkat())  linkpath is relative and newdirfd is a file descriptor referring  to
              a file other than a directory.

       EPERM  System plików zawierający linkpath nie zezwala na tworzenie dowiązań symbolicznych.

       EROFS  Plik linkpath znajduje się na systemie plików tylko dla odczytu.

WERSJE

       symlinkat()   was  added  to Linux in kernel 2.6.16; library support was added to glibc in
       version 2.4.

ZGODNE Z

       symlink(): SVr4, 4.3BSD, POSIX.1-2001, POSIX.1-2008.

       symlinkat(): POSIX.1-2008.

UWAGI

       Nie jest dokonywane sprawdzenie target.

       Usunięcie nazwy, na którą wskazuje  dowiązanie  symboliczne,  w  rzeczywistości  spowoduje
       skasowanie  pliku  (chyba  że  ma jeszcze inne twarde dowiązania). Jeśli zachowanie to nie
       jest porządane, należy używać link(2).

   Uwagi dla glibc
       On older kernels where symlinkat()  is unavailable, the glibc wrapper function falls  back
       to  the  use  of  symlink().   When  linkpath  is  a relative pathname, glibc constructs a
       pathname based on the symbolic link in /proc/self/fd  that  corresponds  to  the  newdirfd
       argument.

ZOBACZ TAKŻE

       ln(1), namei(1), lchown(2), link(2), lstat(2), open(2), readlink(2), rename(2), unlink(2),
       path_resolution(7), symlink(7)

O STRONIE

       Angielska wersja tej strony  pochodzi  z  wydania  5.13  projektu  Linux  man-pages.  Opis
       projektu,  informacje  dotyczące  zgłaszania  błędów oraz najnowszą wersję oryginału można
       znaleźć pod adresem https://www.kernel.org/doc/man-pages/.

TŁUMACZENIE

       Autorami  polskiego  tłumaczenia  niniejszej  strony   podręcznika   są:   Przemek   Borys
       <pborys@dione.ids.pl> i Andrzej Krzysztofowicz <ankry@green.mf.pg.gda.pl>

       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⟩.