symlink

SYMLINK(2)               Podręcznik programisty Linuksa               SYMLINK(2)



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
               || /* Glibc versions <= 2.19: */ _BSD_SOURCE

       symlinkat():
           Od glibc 2.10:
               _POSIX_C_SOURCE >= 200809L
           Przed 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.

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

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

       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.

       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.

       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.

       The following additional errors can occur for symlinkat():

       EBADF  newdirfd is not a valid file descriptor.

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

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

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.10 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
       manpages-pl-list@lists.sourceforge.net ⟨⟩.



Linux                          15 września 2017 r.                    SYMLINK(2)