Provided by: manpages-pl_4.21.0-2_all bug

NAZWA

       intro - wprowadzenie do wywołań systemowych

OPIS

       Dział  2.  podręcznika  opisuje  wywołania systemowe Linuksa. Wywołanie systemowe jest punktem dostępu do
       jądra Linux. Nie są one zwykle wywoływane bezpośrednio: większość wywołań systemowych posiada odpowiednie
       funkcje obudowujące biblioteki C, które przeprowadzają wymagane kroki (np. przejście do trybu jądra), aby
       je wywołać. Dlatego wykonanie wywołania systemowego wygląda  tak  samo,  jak  wywołanie  zwykłej  funkcji
       bibliotecznej.

       W wielu przypadkach funkcja opakowujące biblioteki C nie czyni nic więcej oprócz:

       •  skopiowania  argumentów  i  unikalnego  numeru  wywołania  systemowego  do  rejestrów w miejsce, gdzie
          spodziewa się ich jądro;

       •  przejścia do trybu jądra, gdzie jądro wykonuje faktyczną pracę wywołania systemowego;

       •  i ustawienia errno, jeśli wywołanie systemowe zwróci numer  błędu  gdy  jądro  powróci  CPU  do  trybu
          użytkownika.

       Jednak  w  kilku  przypadkach  funkcja  opakowująca  może  czynić  więcej  np.  wykonując  pewne  wstępne
       przetworzenie argumentów przed przejściem do trybu jądra lub wykonując przetworzenie wartości  zwracanych
       przez  wywołanie  systemowego.  Jeśli  tak  jest,  to  strony  podręcznika  w sekcji 2 zwykle starają się
       poinformować o detalach interfejsu  biblioteki  (zwykle  GNU)  C  oraz  surowego  wywołania  systemowego.
       Najczęściej główny rozdział OPIS skupia się na wywołaniu bibliotecznym C, a różnice wywołania systemowego
       są opisane w sekcji UWAGI.

       Lista wywołań systemowych Linuksa jest dostępna w podręczniku syscalls(2).

WARTOŚĆ ZWRACANA

       W  przypadku  błędu,  większość wywołań zwraca ujemną liczbę błędu (tzn. ujemną wartość jednej ze stałych
       opisanych w errno(3)). Opakowania biblioteki C  ukrywają  te  detale  przed  wywołującym:  gdy  wywołanie
       systemowe  zwróci wartość ujemną, opakowanie kopiuje wartość absolutną do zmiennej errno i zwraca -1 jako
       wartość zwracaną przez opakowanie.

       Wartość zwracana przez udane wywołanie systemowe zależy od niego. Wiele wywołań zwraca przy powodzeniu 0,
       lecz niektóre zwracają również wartości niezerowe przy pomyślnym wywołaniu systemowym. Detale są  opisane
       w poszczególnych stronach podręcznika.

       W  niektórych  przypadkach,  programista  musi  zdefiniować testowe makro funkcji aby pozyskać deklarację
       wywołania systemowego z pliku nagłówkowego opisanego w rozdziale SKŁADNIA strony podręcznika  systemowego
       (gdy  jest  to  wymagane,  takie  makra  muszą  być  zdefiniowane  przez dołączeniem jakichkolwiek plików
       nagłówkowych). W takich sytuacjach, wymagane makro jest opisane  w  odpowiednim  podręczniku  systemowym.
       Więcej informacji o testowych makrach funkcji można znaleźć w feature_test_macros(7).

STANDARDY

       Poszczególne  zwroty i skróty używane do określenia wariantów Uniksa i standardów, do których wywołania w
       tym dziale się stosują. Patrz standards(7).

UWAGI

   Bezpośrednie wywoływanie
       W większości przypadków nie ma potrzeby  bezpośredniego  wywoływania  wywołań  systemowych,  lecz  czasem
       zdarza   się,  że  jakaś  przydatna  funkcja  systemowa  nie  ma  zaimplementowanego  przydatnej  funkcji
       opakowującej w standardowej bibliotece C. Programista musi wówczas wywołać wywołanie  systemowe  ręcznie,
       za pomocą syscall(2). Dawniej można było użyć również jednego z makr _syscall, opisanych w _syscall(2).

   Autorzy i prawa autorskie
       Nazwiska  autorów  i  warunki  kopiowania  znajdują  się  w nagłówku strony man.  Mogą one różnić się dla
       poszczególnych stron.

ZOBACZ TAKŻE

       _syscall(2), syscall(2), syscalls(2), errno(3), intro(3), capabilities(7), credentials(7),
       feature_test_macros(7), mq_overview(7), path_resolution(7), pipe(7), pty(7), sem_overview(7),
       shm_overview(7), signal(7), socket(7), standards(7), symlink(7), system_data_types(7), sysvipc(7),
       time(7)

TŁUMACZENIE

       Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Adam Byrtek <alpha@irc.pl>, Andrzej
       Krzysztofowicz <ankry@green.mf.pg.gda.pl>, Michał Kułach <michal.kulach@gmail.com> i Robert Luberda
       <robert@debian.org>

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

Linux man-pages 6.03                            5 lutego 2023 r.                                        intro(2)