intro(2) System Calls Manual intro(2) NAZWA intro - wprowadzenie do wywolan systemowych OPIS Dzial 2. podrecznika opisuje wywolania systemowe Linuksa. Wywolanie systemowe jest punktem dostepu do jadra Linux. Nie sa one zwykle wywolywane bezposrednio: wiekszosc wywolan systemowych posiada odpowiednie funkcje obudowujace biblioteki C, ktore przeprowadzaja wymagane kroki (np. przejscie do trybu jadra), aby je wywolac. Dlatego wykonanie wywolania systemowego wyglada tak samo, jak wywolanie zwyklej funkcji bibliotecznej. W wielu przypadkach funkcja opakowujace biblioteki C nie czyni nic wiecej oprocz: o skopiowania argumentow i unikalnego numeru wywolania systemowego do rejestrow w miejsce, gdzie spodziewa sie ich jadro; o przejscia do trybu jadra, gdzie jadro wykonuje faktyczna prace wywolania systemowego; o i ustawienia errno, jesli wywolanie systemowe zwroci numer bledu gdy jadro powroci CPU do trybu uzytkownika. Jednak w kilku przypadkach funkcja opakowujaca moze czynic wiecej np. wykonujac pewne wstepne przetworzenie argumentow przed przejsciem do trybu jadra lub wykonujac przetworzenie wartosci zwracanych przez wywolanie systemowego. Jesli tak jest, to strony podrecznika w sekcji 2 zwykle staraja sie poinformowac o detalach interfejsu biblioteki (zwykle GNU) C oraz surowego wywolania systemowego. Najczesciej glowny rozdzial OPIS skupia sie na wywolaniu bibliotecznym C, a roznice wywolania systemowego sa opisane w sekcji UWAGI. Lista wywolan systemowych Linuksa jest dostepna w podreczniku syscalls(2). WARTOSC ZWRACANA W przypadku bledu, wiekszosc wywolan zwraca ujemna liczbe bledu (tzn. ujemna wartosc jednej ze stalych opisanych w errno(3)). Opakowania biblioteki C ukrywaja te detale przed wywolujacym: gdy wywolanie systemowe zwroci wartosc ujemna, opakowanie kopiuje wartosc absolutna do zmiennej errno i zwraca -1 jako wartosc zwracana przez opakowanie. Wartosc zwracana przez udane wywolanie systemowe zalezy od niego. Wiele wywolan zwraca przy powodzeniu 0, lecz niektore zwracaja rowniez wartosci niezerowe przy pomyslnym wywolaniu systemowym. Detale sa opisane w poszczegolnych stronach podrecznika. W niektorych przypadkach, programista musi zdefiniowac testowe makro funkcji aby pozyskac deklaracje wywolania systemowego z pliku naglowkowego opisanego w rozdziale SKLADNIA strony podrecznika systemowego (gdy jest to wymagane, takie makra musza byc zdefiniowane przez dolaczeniem jakichkolwiek plikow naglowkowych). W takich sytuacjach, wymagane makro jest opisane w odpowiednim podreczniku systemowym. Wiecej informacji o testowych makrach funkcji mozna znalezc w feature_test_macros(7). STANDARDY Poszczegolne zwroty i skroty uzywane do okreslenia wariantow Uniksa i standardow, do ktorych wywolania w tym dziale sie stosuja. Patrz standards(7). UWAGI Bezposrednie wywolywanie W wiekszosci przypadkow nie ma potrzeby bezposredniego wywolywania wywolan systemowych, lecz czasem zdarza sie, ze jakas przydatna funkcja systemowa nie ma zaimplementowanego przydatnej funkcji opakowujacej w standardowej bibliotece C. Programista musi wowczas wywolac wywolanie systemowe recznie, za pomoca syscall(2). Dawniej mozna bylo uzyc rowniez jednego z makr _syscall, opisanych w _syscall(2). Autorzy i prawa autorskie Nazwiska autorow i warunki kopiowania znajduja sie w naglowku strony man. Moga one roznic sie dla poszczegolnych stron. ZOBACZ TAKZE _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) TLUMACZENIE Autorami polskiego tlumaczenia niniejszej strony podrecznika sa: Adam Byrtek , Andrzej Krzysztofowicz , Michal Kulach i Robert Luberda Niniejsze tlumaczenie jest wolna dokumentacja. Blizsze informacje o warunkach licencji mozna uzyskac zapoznajac sie z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje sie ZADNEJ ODPOWIEDZIALNOSCI. Bledy w tlumaczeniu strony podrecznika prosimy zglaszac na adres listy dyskusyjnej . Linux man-pages 6.06 31 pazdziernika 2023 r. intro(2)