Provided by: manpages-pl_0.7-2_all 

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.
Linux 2014-02-20 INTRO(2)