focal (2) intro.2.gz

Provided by: manpages-pl_0.7-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).

ZGODNE Z

       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
       Nagłówek  źródeł  każdej  strony  podręcznika  systemowego  zawiera  informacje  o  autorach  i warunkach
       wykorzystania. Mogą się one różnić, w zależności od strony.

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), svipc(7), symlink(7), time(7)

O STRONIE

       Angielska wersja tej strony pochodzi z wydania 4.05 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 man są: Adam Byrtek (PTM) <alpha@irc.pl>,
       Andrzej M. Krzysztofowicz (PTM) <ankry@green.mf.pg.gda.pl> i Michał Kułach <michal.kulach@gmail.com>.

       Polskie tłumaczenie jest częścią projektu manpages-pl; uwagi, pomoc, zgłaszanie błędów na stronie
       http://sourceforge.net/projects/manpages-pl/. Jest zgodne z wersją  4.05 oryginału.