.\" -*- coding: UTF-8 -*-
.\" Copyright (C) 2007 Michael Kerrisk <mtk.manpages@gmail.com>
.\"
.\" SPDX-License-Identifier: Linux-man-pages-copyleft
.\"
.\" 2007-10-23 mtk: moved the _syscallN specific material to the
.\"     new _syscall(2) page, and substantially enhanced and rewrote
.\"     the remaining material on this page.
.\"
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.TH intro 2 "2 maja 2024 r." "Linux man\-pages 6.9.1" 
.SH NAZWA
intro \- wprowadzenie do wywołań systemowych
.SH 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.
.P
W wielu przypadkach funkcja opakowujące biblioteki C nie czyni nic więcej
oprócz:
.IP \[bu] 3
skopiowania argumentów i unikalnego numeru wywołania systemowego do
rejestrów w miejsce, gdzie spodziewa się ich jądro;
.IP \[bu]
przejścia do trybu jądra, gdzie jądro wykonuje faktyczną pracę wywołania
systemowego;
.IP \[bu]
i ustawienia \fIerrno\fP, jeśli wywołanie systemowe zwróci numer błędu gdy
jądro powróci CPU do trybu użytkownika.
.P
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.
.P
Lista wywołań systemowych Linuksa jest dostępna w podręczniku
\fBsyscalls\fP(2).
.SH "WARTOŚĆ ZWRACANA"
W przypadku błędu, większość wywołań zwraca ujemną liczbę błędu (tzn. ujemną
wartość jednej ze stałych opisanych w \fBerrno\fP(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 \fIerrno\fP i zwraca
\-1 jako wartość zwracaną przez opakowanie.
.P
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.
.P
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 \fIjakichkolwiek\fP 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 \fBfeature_test_macros\fP(7).
.SH 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
\fBstandards\fP(7).
.SH UWAGI
.SS "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ą \fBsyscall\fP(2). Dawniej można było użyć również jednego z makr
_syscall, opisanych w \fB_syscall\fP(2).
.SS "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.
.SH "ZOBACZ TAKŻE"
.ad l
.nh
\fB_syscall\fP(2), \fBsyscall\fP(2), \fBsyscalls\fP(2), \fBerrno\fP(3), \fBintro\fP(3),
\fBcapabilities\fP(7), \fBcredentials\fP(7), \fBfeature_test_macros\fP(7),
\fBmq_overview\fP(7), \fBpath_resolution\fP(7), \fBpipe\fP(7), \fBpty\fP(7),
\fBsem_overview\fP(7), \fBshm_overview\fP(7), \fBsignal\fP(7), \fBsocket\fP(7),
\fBstandards\fP(7), \fBsymlink\fP(7), \fBsystem_data_types\fP(7), \fBsysvipc\fP(7),
\fBtime\fP(7)
.PP
.SH TŁUMACZENIE
Tłumaczenie niniejszej strony podręcznika:
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>
.
.PP
Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach
licencji można uzyskać zapoznając się z
.UR https://www.gnu.org/licenses/gpl-3.0.html
GNU General Public License w wersji 3
.UE
lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.
.PP
Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy
dyskusyjnej
.MT manpages-pl-list@lists.sourceforge.net
.ME .
