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