Linux_Programowanie_systemowe_Wydanie_II_linps2.pdf

(802 KB) Pobierz
Tytuł oryginału: Linux System Programming: Talking Directly to the Kernel and C Library, 2nd Edition
Tłumaczenie: Jacek Janusz
ISBN: 978-83-246-8285-0
© 2014 Helion S.A.
Authorized Polish translation of the English edition Linux System Programming, 2nd Edition, ISBN
9781449339531 © 2013 Robert Love.
This translation is published and sold by permission of O’Reilly Media, Inc., which owns or controls all
rights to publish and sell the same.
All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means,
electronic or mechanical, including photocopying, recording or by any information storage retrieval system,
without permission from the Publisher.
Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej
publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną,
fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje
naruszenie praw autorskich niniejszej publikacji.
Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich
właścicieli.
Autor oraz Wydawnictwo HELION dołożyło wszelkich starań, by zawarte w tej książce informacje były
kompletne i rzetelne. Nie bierze jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za
związane z tym ewentualne naruszenie praw patentowych lub autorskich. Wydawnictwo HELION nie
ponosi również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji
zawartych w książce.
Wydawnictwo HELION
ul. Kościuszki 1c, 44-100 GLIWICE
tel. 32 231 22 19, 32 230 98 63
e-mail: helion@helion.pl
WWW: http://helion.pl (księgarnia internetowa, katalog książek)
Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
http://helion.pl/user/opinie/linps2
Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.
Printed in Poland.
Kup książkę
Poleć książkę
Oceń książkę
Księgarnia internetowa
Lubię to! » Nasza społeczność
Spis tre ci
Przedmowa .................................................................................................................. 13
Wst p ........................................................................................................................... 15
1. Wprowadzenie — podstawowe poj cia .................................................................... 21
Programowanie systemowe
Dlaczego warto uczy si programowania systemowego?
Kamienie w gielne programowania systemowego
Funkcje systemowe
Biblioteka j zyka C
Kompilator j zyka C
API i ABI
API
ABI
Standardy
Historia POSIX oraz SUS
Standardy j zyka C
Linux i standardy
Ksi ka i standardy
Poj cia dotycz ce programowania w Linuksie
Pliki i system plików
Procesy
U ytkownicy i grupy
Uprawnienia
Sygna y
Komunikacja mi dzyprocesowa
Pliki nag ówkowe
Obs uga b dów
Pocz tek programowania systemowego
21
22
23
23
24
24
25
25
26
27
27
28
28
29
29
30
36
38
39
39
40
40
40
43
3
Kup książkę
Poleć książkę
2. Plikowe operacje wej cia i wyj cia .............................................................................45
Otwieranie plików
Funkcja systemowa open()
W a ciciele nowych plików
Uprawnienia nowych plików
Funkcja creat()
Warto ci zwracane i kody b dów
Czytanie z pliku przy u yciu funkcji read()
Warto ci zwracane
Czytanie wszystkich bajtów
Odczyty nieblokuj ce
Inne warto ci b dów
Ograniczenia rozmiaru dla funkcji read()
Pisanie za pomoc funkcji write()
Zapisy cz ciowe
Tryb dopisywania
Zapisy nieblokuj ce
Inne kody b dów
Ograniczenia rozmiaru dla funkcji write()
Sposób dzia ania funkcji write()
Zsynchronizowane operacje wej cia i wyj cia
Funkcje fsync() i fdatasync()
Funkcja sync()
Znacznik O_SYNC
Znaczniki O_DSYNC i O_RSYNC
Bezpo rednie operacje wej cia i wyj cia
Zamykanie plików
Kody b dów
Szukanie za pomoc funkcji lseek()
Szukanie poza ko cem pliku
Kody b dów
Ograniczenia
Odczyty i zapisy pozycyjne
Kody b dów
Obcinanie plików
Zwielokrotnione operacje wej cia i wyj cia
Funkcja select()
Funkcja poll()
Porównanie funkcji poll() i select()
Organizacja wewn trzna j dra
Wirtualny system plików
Bufor stron
Opó niony zapis stron
Zako czenie
4
Spis tre ci
46
46
49
49
51
52
52
53
54
55
55
56
56
57
57
58
58
59
59
60
60
62
63
63
64
65
65
66
67
67
68
68
69
69
70
71
76
80
81
81
82
84
85
Kup książkę
Poleć książkę
3. Buforowane operacje wej cia i wyj cia ...................................................................... 87
Operacje wej cia i wyj cia buforowane w przestrzeni u ytkownika
Rozmiar bloku
Typowe operacje wej cia i wyj cia
Wska niki do plików
Otwieranie plików
Tryby
Otwieranie strumienia poprzez deskryptor pliku
Zamykanie strumieni
Zamykanie wszystkich strumieni
Czytanie ze strumienia
Czytanie pojedynczego znaku
Czytanie ca ego wiersza
Czytanie danych binarnych
Pisanie do strumienia
Zapisywanie pojedynczego znaku
Zapisywanie a cucha znaków
Zapisywanie danych binarnych
Przyk adowy program u ywaj cy buforowanych operacji wej cia i wyj cia
Szukanie w strumieniu
Otrzymywanie informacji o aktualnym po o eniu w strumieniu
Opró nianie strumienia
B dy i koniec pliku
Otrzymywanie skojarzonego deskryptora pliku
Parametry buforowania
Bezpiecze stwo w tków
Nieautomatyczne blokowanie plików
Nieblokowane operacje na strumieniu
Krytyczna analiza biblioteki typowych operacji wej cia i wyj cia
Zako czenie
87
89
90
90
91
91
92
93
93
93
93
94
96
97
97
98
98
99
100
101
102
102
103
104
105
106
107
108
109
4. Zaawansowane operacje plikowe wej cia i wyj cia ................................................. 111
Rozproszone operacje wej cia i wyj cia
Funkcje readv() i writev()
Odpytywanie zdarze
Tworzenie nowego egzemplarza interfejsu odpytywania zdarze
Sterowanie dzia aniem interfejsu odpytywania zdarze
Oczekiwanie na zdarzenie w interfejsie odpytywania zdarze
Zdarzenia prze czane zboczem a zdarzenia prze czane poziomem
Odwzorowywanie plików w pami ci
Funkcja mmap()
Funkcja munmap()
112
112
117
117
118
121
122
123
123
128
Spis tre ci
5
Kup książkę
Poleć książkę
Zgłoś jeśli naruszono regulamin