Beginning Linux Programming by Neil MatthewBeginning Linux Programming by Neil Matthew

Beginning Linux Programming

byNeil Matthew, Richard Stones

Paperback | November 5, 2007

Pricing and Purchase Info

$38.65 online 
$47.99 list price save 19%
Earn 193 plum® points

Prices and offers may vary in store

Quantity:

In stock online

Ships free on orders over $25

Not available in stores

about

Beginning Linux Programming, Fourth Edition continues its unique approach to teaching UNIX programming in a simple and structured way on the Linux platform. Through the use of detailed and realistic examples, students learn by doing, and are able to move from being a Linux beginner to creating custom applications in Linux. The book introduces fundamental concepts beginning with the basics of writing Unix programs in C, and including material on basic system calls, file I/O, interprocess communication (for getting programs to work together), and shell programming. Parallel to this, the book introduces the toolkits and libraries for working with user interfaces, from simpler terminal mode applications to X and GTK+ for graphical user interfaces. Advanced topics are covered in detail such as processes, pipes, semaphores, socket programming, using MySQL, writing applications for the GNOME or the KDE desktop, writing device drivers, POSIX Threads, and kernel programming for the latest Linux Kernel.
Neil Matthew has been interested in and has programmed computers since 1974. A mathematics graduate from the University of Nottingham, Neil is just plain keen on programming languages and likes to explore new ways of solving computing problems. He’s written systems to program in BCPL, FP (Functional Programming), Lisp, Prolog, and a st...
Loading
Title:Beginning Linux ProgrammingFormat:PaperbackDimensions:816 pages, 9.3 × 7.3 × 1.8 inPublished:November 5, 2007Publisher:WileyLanguage:English

The following ISBNs are associated with this title:

ISBN - 10:0470147628

ISBN - 13:9780470147627

Reviews

Rated 4 out of 5 by from A great intro to linux C programming and scripting So you know C and a little about Linux and you want yo take the next step. Well if you do this is the book for you. It offers a great intro to programming in Linux (using C and scripts, mostly C). and covers the major development tools and topics(except kernel modules). So if your serious or curious about Linux programming this is the book for you(Note: its assumed you know how to program in C)
Date published: 2008-05-06

Read from the Book

%PDF-1.4 %???????????????????????????????? 1 0 obj > endobj 2 0 obj > endobj 3 0 obj > endobj 4 0 obj > endobj 5 0 obj > endobj 6 0 obj > endobj 7 0 obj > endobj 8 0 obj > endobj 9 0 obj > endobj 10 0 obj > endobj 11 0 obj > endobj 12 0 obj > endobj 13 0 obj > endobj 14 0 obj > endobj 15 0 obj > endobj 16 0 obj > endobj 17 0 obj > endobj 18 0 obj > endobj 19 0 obj > endobj 20 0 obj > stream H??W]s????;??? ?~??vd[?]iJe?X?X ???p?{?]|?J???d$????q?g?? ?y?9?l???:??/bF?Q&???M\_]]!?ufJUb?H?.??[@]%2$L ???9?????c?s2??????c???.????.??1?l???z??@??K ?A???7???C?????> ?m6?Z?fK?uvDqB??`v???·?_?L?f?jS????3?J?=??]O?s#$(eB?????II ?-?7??tQ?L???x!R????n"~?I?\\?b?D\???a?Ak?A??L}??9 ???&K???1?K?R??D>??nF ?AZN2l?o?f*6a???XDF??l ??E2???K(?&9?G????3??1???Nn??? ????V??Bc?z?z?{?R??d?J???,I^?` ?ag? ????!+??? ?T??A?[?1H2??G???3?M?0?L3Kd??EP4???X''~L#??????9?????^?KlP0????}U?D?''?t??õ?? ?l(5???5??#?Z??}??Ape??T??+î??5?0?WOeK?*?=?''????K?Z?s?]??j.??|`? ???n?[q????}??"? ???????y?????|?zn?K??F?h''X?c??!?+&4Q????[?Q*???$w?????A?£ nNW%?o%??B? ]???QE????V??/ > /ExtGState > >> endobj 22 0 obj > endobj 23 0 obj > stream H??W?r????;?a??D^?)[^y??vT+9???CpH?`?@?N>8?g!J?H%==?????(f??"?XL? c??#???????45??,??4???m??7L? |?Y????_??Z?Lm??/2?6:d?[??r??D8?^ }aZ?&7L?o???T}???D0??>?c???g??]k?[?o??p?.?G?,W?Y???,E?>?8en ? O?K??? ?????Eh? ??v@??? L?&???q2g?TC?EM?_?????"????u?F???Q????P|??) ~d j#??"????????"?!AQ??????=??ol_? ??pDY? ???%??lv ???Z?4? ? ??Wk8????b??SS?;??!??7?,?#??tA???8a???Tl??v?c??zFY?J?0? $?V??&Lb?I?C?G?{y?9?>?_]?)?C+US?? p??"???[?B??????v/??h-?r+??????''}A?? ???l?50??????}>?????9?N}k1 g?h?{??y?{?????,?v:?Og?x? ?U?_3?u?xqh?p???h/?A #????Bno???zy???~`7? ?|??????2?JP^?????R6?k{ ?/??Ah6??2?{c?c?? ????kIQm?Vl''?????(i ?????/??t??A??-???nj?UdD?1Z?o?????0N???1]????8x/????t>???Sz;? }?T? ??vM?L?|?}@O?u???vu=??;`A]?o?*? LN~??o? ??n?|k ?`P?V%+^?m?-?}?^?? .???r??!?$????U!.???\*?? ?U?N?HL???%?siT*G??? ?m{??M?Eol?\0\???Z?''m??*?D {vb.???4n$?q???:???P ?T??F?- ????K?e?tSU%CTeS?? ?X_?n^_ XR?i,3????mYm!/??6?P{??v???NFm#?!?ME??U??m''R7??xV?HJQ? Ble??#?C ?* ???s????0?`?G?4@?? (?A}??n?F? ? ''???{yN??o}?"?mM?4]??*A??{V?Y?jty?_??S??C?????[^T???>?)??Aw=.5??i?g????;??:OAK??l?"gE? ?==??????ij??1??v??s?z2%??%?U4?y?? z ????y?;?2h.?? ????6???V74hsD(Ok?3?p???u? v??y?E t?!6?E?x??Q?F??0????0?`?]h??W???G??#????W?p???}`???????S?#?h6[v????+?????1L?e8MS?]?K:?w?N6?$?r????]7r~???e??W????? ? E???"??|? )JV???)??f?!9?6?,_?G??}o?Ev?q? ?S? > /ExtGState > >> endobj 25 0 obj > endobj 26 0 obj > stream H??W?r????;????p!.?[,?wW^gEU??0?,?@Q?g?!??3?d??l?"???p????t?o?2??????8?R?h?Ro?$???|?b??!??=?_?]???????y4_ f???f?3u]??0p?Q?|Ak???Y??~p;??( ???{???$?(6?\V?VT?U?????P????;IW???f?LkZfU]f?]-??+??4?>?4 "???s??}????}??s???h?;S???h$??a4???;A???|?u?W?4??.?f??@q?w?/SRRU?"+?b}T???}????&??A?_!?^?zuN????^????pLY??%?''*??f/@?????._??Ujg?J \???A???z ??S4p?F??>?YVp????w????? ?c???!?? c ?5??h? &??wu?;?;?0 ;??{????J}?? ????,E?Tc?:[??Y}?=???x?????A??°M??*??f Q???Q,???y?{Gr|?o???F?U??????5?e?fe(?x?t ''CUldQkX????.???Eq &(??^??|w?A?B???W[?G?e.E? W1???]?K|?m?l?4??mK?c??e???1(L??j??K?S?????I?????F?S?T^???b?Z?G?X??;?+d??X?b{??¸n??o?=??8H?"??r?djP?K????f;6??ƒ?UR ??????73?x?????o?^??v????>?f??u????=M8??NlY9?"? ????mT?c5?**?? +?????xY.8K?;Q?Te]??fI?????G?g????~?/GT?l???8??V"g)???U?x?5??#&yv?????1??2?*h ?45??l@z?????u??????uHq?f?6A?8????#?@[??Ym???{e?`?U??w9"?_I?x???e:???P??? VjG?(Y?j??p ?3??s?v*?5?/0?????o1?]]o???????.v?*????Z?L??? ? ?T?+???+%Qr 5?,Y>??F? ?)?4??rxL? ?|b??X?4?8={?=?/U?1x&?J3?S?????4????0q?z?ke???4????s??Y??????{??M???*?#? ???A?? ??\n{4^??!???D?????U?wF?nr?9?? ?????/?w????Z??l#?R??u??Jt? ?5?D??4??ly??? ???????`6??Y?)b_f5H?%8??l??yFW7?9???*??O+JOpc??f,3bT?????~??|??z? ???/O7?????????S|?????N?Ði??]"?? Z?Q4?i?????T?????J????k????R_?C?? B/8~?7???[S?hJ????#"??C ???s?j????F?Lg?44??=??a?]????a@q??''N zc|?? ????????S?M??? ?v??}???x??? /???~?[?2{?7s?F?f??}????t)Hb|??ya??-Fn??4???h?:L?(I(?}''?Q?Q????{?tox??|?C''`-?;Q??? ??7x?"?7??R??k?z-?>?i??+??A?N?]??4u??p?~t????^TlR????x"??!???q]??e"tK???F?#8??)??R=,?ƒPua?s?f?v?0lu?8i??g? fh?*? > /ExtGState > >> endobj 28 0 obj > endobj 29 0 obj > stream H??W??F??? ??? tu?????i3]{???:oz?N??1???????8??Zu?[?1;???z???T?L??8\gn?Ød?F?C??????? G??[??A??_?1????|?OcR?`]?P:?V?s? ?Nxk???eN??>?,?.?U??J?*?Q???k3I^?D??5?u?(?gX9Hs??_A+''?\?sFhu??t?V???hu?ú??j$"Zl?4??f??$?????X??39NI?R9?^? {''??}?''?^?u ? y??;??B??iDD??n_??}??1?4T%f?[??p??;3??KLi????7.?w?.???QB??9?P!??.?o??N?D????qG??????`?w?E*?GJpgUY??9?l???rZ??e?l?F????U???jU3?^r????; ?$_?;]UI???*.?3??J/?????w??%p???@? ?wJG???? 8??? ??,_~*??EN??????O????H4?t?)???R?? ??b???-w?aO? ?j???????E?)R?P?3|~?"$???bW_???L?S?.?+}xI?^??[)L^??V??Q?m?OK?Q+??;?@?????V?? ???_?&??_?:?!X?1?>GH?u??W?N????9???yz?T8????cQ?ik???1|?cz?zt~?)???????y?\??\??u??#=kA??=4$?1?F??¥E???;gR???v>J > /ExtGState > >> endobj 31 0 obj > endobj 32 0 obj > stream H??W?r?F??w????%G?}???T??Ft?UrFÐ??? ?I?v?L??A???O?5L???m?q C?n??T3W??gnr?e???g6}??~?>?z{?m5{??]?K0?V?Y?l??Y?s? |?{A?U????#?Z???:?n?J?r.BY??lS?L??N;?z??b???????V??U?fn%?;??uQjUq????Y]??g??%??7??????/?v)???l?Sl| [P????4e????.U 6_? 4??X?b{???GH?? ???j????N?? #gp?2?[kA?d????|`?j??4?=$??8t0??A?^?K_,u?i?(????d)l??`?%2???$?2g?b?"??ms???=?%??ZeL&??uU????? ??M??4}??D>U?Q??y_?dn[l??5?z??&??i???b[??(???"f??&Q???i? ??@???|??c??6]q''?G?z[Ww:/?s|;??????$b/? ???(j?(???EnK?~?SI#?u???"??arMUN''?\ ?%??R%?;fyB??(??u????:?^?f eu?q?cD?3??rR?i???d?m?z8?a,?_??/???j?7zM9??0i*k]?*xh?n?Yo?S_??=8_?.??bi??9 '')?zt(??6w?a??N)[ ???? ?#_0/??0+??M%???h???1?@? ?%?2?????????iz?"?P????????Q????`HJ???u??u?Q#?^(`]#`?S ?E???:o?-X??*????tSe??H??kZl`?|?s ??Y?fz=?Dp????N????Z?d)?5r3?L??,5??Q??z?CG ??rxH??0???`??Pwa^ ??YE Eh??T??E\? v!!m?????ËS??? -??,?????c&vpDHTAq L?''?!P%g*?qz??????eE?P}e???o??? }??&?L????G?p?hp?N=K?????z r??????A???Ggv????{?U?t???g!~&Ma +H????Z?h?=? #?$4????-?>??d?G??(K?r???s?4u?*nS??&?{7???ta2i/B???Y? ?q??@?X?f ]??4?o9?@''?tk??1?9"?L,??~.????/ ??P????Ex_???/???9~??S??uyZ?? :?L?tb ?5)?~ ??1? ????? ???;??Dj?/?M*Kv????????????^???!?zW?U??dr]?=???v???rd????g?3???J???C??u?W???#F???Un???? 3l?J?%?????????}&-????^???2???????n????M)?????U??S??@sag?:?]]????? /???{?=???UC?D?%?GU??Ak?;??????3r??>??C''~n!???i??#?~%?P??A??]; ???c;>??al."1?.W?''??egV?tl5Z?M?s?g???rT??A????N?K C?I?B??:??5yN[>??M/I?s?P3HM,?.wl7?B???,z9?IE??.??s??P??q?=&?uW ??J?*W#??q;?f?%?Ni?r?? ?? ? ??6??3339?!U?xn????vSjB?l??M????bB??z??v?i?m?gH?Y??mgBx?m??00c???mP???? ???????=???f ?????Y?9?o,q ??jR_???)zb ?G??U?u?V? lKb?v?i=?C,?nf?Q???? ??L?a? I??v?2??:?.?f>e?.?Bt??g{??H???6?#?[?????k???|?FV?????1^??q????e?Jr?a? ???%kI?P @}?{L4? o???vu?x??s? ??s''>}?B=k?zK?\I?k??x^@`???yI55#!e???R-l?Hz^??4^?$\?,??f?"G?6?5???J??R?%`?E?????(>?????? S?? f?????Hmw ???= ??X ??5?&V?6??jC?j ?>?q?!? fY????=??F?,?i? > endobj 34 0 obj > stream H??W???~???U?f93$?t???4????-???R??D"??V(??E???J?(i?^?¶a?F??;?g~?+?0?C????. ????>?p??^?Y??????:f?=L=??!d??0?J&?e 13o? ?5????0/?????rQ?G?@???R#.e" 8!?yg????????????9?-?jY?k?b???h?V6,??b¬??*L`>??O% ??v???v???Y???zv?x ?Z E]???(z]?_i=?q??%?G( =6?&YM??jy???? ????v??5??pQ|??U?G?IT?????H??kX? 0???2?o??6??u?~$??(G??w? ?v4??T??yuj????)?????w?p>????????8M?{??TFc??? $?&????Xb????? ???:[?p?}??''y???q?m4?BPk?:?E??@??j?-?=??v??M5?q??)0??@??*?4!???=,?VR?8???Kx#l ??Sa?&3????4?6Q?|$}U?U? ? 5?x???b_??Bb? ??i?zU ??wh???????f?????? ?????®G4???@?x?H3??&\t?G?q4a????1??P???ZC???????|???8??"???l????H3??e]q9[?L???e?/?&J??|?????u?PE?W????b??+6?q6?&_??(:]?c.?N?Xi?q?Lj????^:??.?S\?:=f?O!??m?uQ??????S?? ??V>1?1????5?? oz??GQ?SOp$??6?|?M##?1?J?]?H hq(uc%?f*?FO?m?V?K!l?F9?L???Tx ;??7 H_sd?? ^?D ? Q,"G????P???d 7@35???B''???#???$?{Yi"????x?x????/??B?? w/?n?m?K:???4???\???)???ew???? ??,''*{??"+;?8?d??N?;$?c?+wx??8?=??!???P?1?Dq?PtE???>:#????q?9(??#G7u??p???bÚ{?L??Re?MN?%{B?6???"?????=K+ ?:??@m?V??+?S??a??%?-i??????T?j?R-?? ''?? endstream endobj 35 0 obj > /ExtGState > >> endobj 36 0 obj > endobj 37 0 obj > stream H??W?????C? ?Bh?x??H?c??D?qr$?4?&Mc?? }qnu??#e? tu-?n??k?Y??????,?|z [?Z. >zZ:6????q7?%???%??? OW? ?v~?? ?-w,????X?(???~g??T????5?h????W?g|?7?+U?"?om$?"/H???????i$????u??w\??!O4]??M????????V??K?*Z??j ??L?p2q??????4???kRCY??5??? ?75k?M+??X?"?????5?:???S?Q/??9\Y???_???N?q??F?''???? ~ J^?Tt?4??_2???"???,?>?_£R????+???(8?M?66[??? ???~??]???`????>Xc+?+>z ???? ?? ?$z?;FX HP??8z?*??n?}?S?8T?m[?v@??@??&UU4?E???u9d^????#?;/T*?!??U???l????4v?s?W? ???p?????????K#??6T?3??te??Ve ??? ??M? ?w?? ?:??K>L]?i??$????f??????7??/?"? ?MG?????h????J??]??gPJ??H;+?Ù?[?Q??o?E??57?.s?e?U??6yu??? ??OM??7? ?????? ??tFJ?0???k??*?^w?k;!47?U??>?X????aC?1??.?n????????S????4???h?I? ? #*S=?Vc??qJNc?@}???kbG??''`????6?^ ???rKM?en????!?qg? >?+3??`c9@C??8??M(`???1"??K-?`????2??it ????? T:/???{?9wV????.???9?5??A>????/??''?©?&?V%efz?p??9???~???e?UoX??I????3?XiUmd7??/A??@E?PWi$???4????q6?u;?rA??U?=X??\?$|) -?- mO?=+r]TR???????????n?(/????? q?}''???~!zG]??o???@??c??h/R???F$6???#,? ??Xh??]%U*???re?Tn?(??-??oR?????,h?b?@ ?H% ?F?? ?#??F?f''?????A???U?W???]???kZ???q[??{????:????u?=?)??????[???m????.?S?Bb?h?N?`????7'')?F??[?3?????T?A?I8??^??U=?1?t?3?bT=D5F?"@5h" ?,e??:?`??"mb?yl??O??P''?k?Wu?:i`` ??L?d1J???~~-???? > /ExtGState > >> endobj 39 0 obj > endobj 40 0 obj > stream H??W?n????C?jl??s????`???vPTKb?"^??o??T7)?7? ?$??]u????? ????|?a??}(??!w????~??e?!?z??p??Y?????Q0???Y?L??L8&????w?r?m?3??? ?2?O?i?????X?$???X??I* V?J??,?H???P¯?#????????;N ??3???c[?q????m???l;.?m#~5?wI?c?fu)?,?X?,?@e,?I????T? ??k?l!??[?M?.T|?[????u~??U?CGizdiG?>K????[ M????w?77gA?????zvL?;,N??h 6m????g%j?|^??3o??tr?V??MXs?s?.??^???I???5??i??f????:~g?Au?"???>?+??j??Q?l[G[J?:1?*?s????%k??r?d??|???? ru?)?O?L?+?zK?0???*?&?GMZ??\ ??p]?{?u?+ux????R??}? ?IJ????^s???B??4/??z s?7i%??(??p?>?#*??œ?j?i?d-ga??????Þ??!???U?OF"???M?o???YAi??!?`/?q~Y& ?#) ?%\d[?l?Y?N?Z?k??5???TL?u??s?2}m?pX??????J-?B?! ??L0???]>?peu??l%k??ht?t]?Fc#!\??:??Q?A?$?c#???? ?Ò4??O?V?s-?(?m?u?5????W??? ??,?YE`??~???L%u''?????r>?)????H@m?4?SkX?.???????Zr???q?`???#=Q???A????ClN? ??5??XY??]^?? L:? ?rQ)L(?P???WR? ?V?0????(?%?BU??``???{ L? ???s?ipd??3???S)xA+''??wo;d?=?w? a?2P?f@??????~??]??F???h??RC??>B;??7T\L????I?s??G??s???????????u?\4K???\?P??\y?????(?u?????X?R????????h???=B?????}?kv????????g?n??|?c ?rS?S?^u??6X?]?#??p???M??BH?YS w??MRQ?g?5qzG8.?????j??@?I???d??Z??+}c??0???jY4h*????=??OA?LN3)?1 ?H;@?*l.W??ù???lH9??mLd?-w????''?uO?B?| ?`QsS??4??sw2^??h?pi??? ev?''? ??;??J7?? ?????*''???[???X%?O?w8 ??7?"*aY?\???* >?l???/iƒ????>??????????0?B!??)???? =???V??R?#u?2???`@?s?? ? ? 1?c???pYC??9h???x??''??^v???#???5bhd ?W>8?Zm??XC???Pb-?x?bE;???????j?????? ?C endstream endobj 41 0 obj > /ExtGState > >> endobj 42 0 obj > endobj 43 0 obj > stream H??W?????C??E]??S&?? ( a? ?:2m+G? ??&???P$EM??m?\+??LS???aP?????w?????4??g?,??,)???wE??&?(????? @?UU9w?Mf?OQ?W}?? ?kT{#?B9???>;??:-F ?K?/?$[??=??]J?~???/Y??????6l??????xQ??T????????J.! \p?@?Z??W??????? ??P??,cFC? ?x1???|X???ao??3??4)??>-U??#}??q%??l?R??,?6@x???(?#M??P_??> =??a@ulW?d???7 ?Cy???G???;s?4?n????vS???ve?a!???G???v@??]??|?I?~????0? ?u k?C5?e?W????? ??????~?7?g>????QC|"?6??i?V????8???Srh? ?????c?6??????Y ??=?:h?1N????i?1??r?U??T??[??S.R3l?"UW?,9????Uv???4??v??>?g??????????o????/V??u\???X???2?AX??b???d??b???{9yv ?1I1u??"?q?(??(?p??&? ?|>????} t?=??La? X4??~???BC?:a????5?84h"?$o?x??????Y??8???SL???ou?2E? 6???7! ?5?? ?z?????m.???Y?X=?"4iR=l???>`?\???_??zsE_F6???-?r?5E???$^???hd&?ya*t?u??"3?)?`\`G 3s?????*????>????A?3?3?;???U??e??0??,+?HV?v?R= !?GA?''?E?pI?Vzr??????n?????n????,? Z8!ONs (?L?{?B????M???V? >??j???2?y?|n?y??D?i???/_>?,?*?P?r''? ?lvgx??%??.WM%?????8??V ?m?L?Rn??V?$???6?6?]O0!~RJ?i?l?b?????Ls???pv{j??}??Ve????_$???P????l?#t?1t?3''+pt(???"?N^r93%???????)?+????C??}>~?3?`â {t??5f!X?????+?v´ |?>???~g-u))??`NCW??????sh`^???V?nb_??t??XRrsÁ5??Q-%?IJp????0??UI^??R??o?lO ???h;?)??3?5??1??Q8jXO???, c??I? F?n??Z????y?v????b?L??*a??Zr?`??>n???0??X??`bc?^????S_S??t??"??? v?G4????v#?????Y?????`7?1 nn? fSM??b???b?#[?= ? 4R?dl??????W? ?????J?;?o@??A?("''??.?_?&Q?? Q,???\qC??C?m?;$?h?)J?e????|$?$[J???=}???Q?2!?yH?z?_??X??Z_?E???k0?F??_~=??4J??;?K??M~??9.h???-_{ww?????e?u9@?E&w??=??LY1?2??w[Kb?|^??o??o????h??y?2????pOt?]??I?z??DC????&????56{?8}????o?T4q2????8?LeF? ?/EM??e+2?NR?P2??X&y????j??Ã?I 5''E????ys?x?''b-???,PL???*???XFt?vr??7w??(?q?q?Q??K??Z???i?y???8?0c??????F?????\G.?b?1?(k?4?\???5?o$?V?? ?7?k?J?sV??7D?&? ?=W > /ExtGState > >> endobj 45 0 obj > endobj 46 0 obj > stream H??W??~???rsDR??iQ??7??iS??E1? ?D?Jd?+???>??b?????eK????E?????x???= x?q?0?Zy?J"?''1 8??`m???????????y7?Q?0?{?O ??''a ??P?? Hf?]????s")??j?[??5d???D?*m??Vi?n??m ?n M??Ee?T?u?xV?T?????m??????[eX| ?N#?????;?I .D???i=?}^/?8I?^??W5??F?xV????iu?2??\?%?)% ????%9?cz#?V?????o?Y[T??Ikt?~W?K??G.?N????!?t?E??4?8?!??:?~???''0?$/]#?{h+??????`C??j%~?`^??h??j?-?%"?a??>Jl??)?JE???z?Ti?????c?j y??u ?(?)??Yi$:T?t5??D?Q????]@>c4?O~?????ik4???*????}?8??>?{?Ei??3Q?????=???????P ??1?[)3 ?e???M;???l"B?=??????o???????_??s)6ZD,^?7?3E?s????/O_?e?~????`}W???!?k?Tk?7?x?H??YwM6jc&1l1z?:$4e?L^.(??D?1?(??Z?Z???$ ??3?9?#AhDŸe??(?q?X?? F?,i??M???Z ??+?E?7???0?0?"*)?? ?8???? ????k}????6 F??????_[?4?ct?4?x????{?_????-??\?K?????#?g???W?7j?''nl~?/&?a?+>?Z3???90cg?c''*???iF+34?dT??"?b?0???QW?[?)??G????t????{?U??? ???`0? ??ktJ?H??vJ?o??s??q??p?v??>???C,???????h88:?n??{ ?e?%??zV??F{??w!,???^????Tg??T??Od??Q??7??]?-???Ey2??''??z???2u???8/?z=D??\??"!1N,?????q?b?}*LN?|! ?¸ ??#?w?K6Y?y?U?d??=??W??n*???3+????????????j *?C?R??y5>???EN?RS?BM5g!?n?J??ty????j??y??P???1?$L??-?Zys??X?!?VRH?$??qqR{(?????"??9C??N???v`ebAB?a? ????B??? ??}BB?(+I?a??????2????;??? ???S,????{W??X?a????3X4???[?}!$:????????Q1J??~pd2?#g%?~?o????k???%7A ???x?.???????#D{??>??x"?X?W?@?&`??N`>KOG???+#Q?t9vr8/?V??0????Q''B???/?UA???;j???????G????K?O??T???B ?^?H?)????q*???[????}???1????n?4r??Y?L?5?hQ?g?$?0?0??G???P????? ??\K? \?;%?.\?TgC?;$??W???#\zD{??C????c?G??!??>>???}tF??f??e?{?k?xB?}d?Á?? ?????20G???? ~?%?L?%Ag6?????f?l????Rs??0z?6k??????a?4?]m??v8?????-_??K?\??0?E?- endstream endobj 47 0 obj > /ExtGState > >> endobj 48 0 obj > endobj 49 0 obj > endobj 50 0 obj > endobj 51 0 obj > stream H??W?????2 ???IQ''???!?A???PK?j?*?,??? ?0??/??????]?a?E???^}u8??x????C????#y??(d???? J?#!?9???W?V??f?\????b?D???_zr?C?$ ?????_?K????q_]??q=?,???????P???Eq??I ?ng?8?}.vR?Zg?n^??????@!???,?1 ?-??9?????*r??5c&???? ?N??q??(?r?z?C??N?p??~Y?x??SR?1?????''??p??????!??4 ?x$_??|)???b?a?f??5?QV??V? E??5Mb?hu???2x[?$n-\?w???4_>???N[?= ?M??y[?^??{{id=?3l0????B??????z?????|*???c??O??6???z ??> ["?PF???? ??v ?&?Fz???%Yf??@? C??ig???J hq?????3?-^?*?qD??E????z?N 6?????? ??V??^?t}?e????6), ??k?y??u?h??q???w??m?y??''??F???1Ea??h_s??.?f+]?:O1`U???q?m ?O????B?+??$N?i?@cYU,???_????{)????O''-z76w?]???6?g??H??????F?????j:?`?A??&6C?)???l?T7?r[}????Zkh??????kL??j?;?u?+??C4?r???1??ot?E?&??n?~i?52d??*[]? ???.+?;q?D{S6]???? S???Wm??????????NB??{???S?(??????r?ta6??`??[(5QOQ?u?4tRl?p=?_"??Z#??}????|?ui.??Dc?i?$>??I.??dx??]T?5Rn ?y?c?{?d??? v??+XK?P?d?? ???8?lL?b? ?? C???t?,?UjD???E???S??})?????\???g@K 6? 7?x?? )a??G??p?-$???-&??1??O6-^g?5\?]????? ,3?@??0?/???GI?YR2?W??#fD64P!J???(b~?0?8?????TWO? ??D?U~???4???????C? ?ms???|??5-d@ ???he?$??=?_+o???1N''???w#.,p?E??^g?j@??Q??+??????HQ;`??}9????I??t?^''?z[?B???wH:?W???;?|?v??G:??c?;?|???????1:c?~~I??k?x?u?t???pP????:??=??I??(?=u?h/;???.???Yu>?7????h??w?fm???? ?? l?L???p?{e??Z?U?j9W-?`??? endstream endobj 52 0 obj > endobj 53 0 obj > stream H??W??H??C=??.T???aXv?{??h?A?d[ KKj?????U?K???m?q???:y2?? ????Z?1}??????>???\7?~?e?%z?G ?^?l[,^ i?=`U?Al????\???H??\X????Nh~o ??i3??L??]hfx??`E??i?#a(O26?K??TYH)/X??''L???????g?T w?f?5?2X?q????i?gn1[? ??%\?? ?b5?-?:]??I??Q|?6??=Y???-]x??h ee.`/? ?_8?0y?H??P??A?!??j?-zQ??1??? ???-wjn??\m??I???(?(???[?z?7??[?????;??dA??8?\??a?\???}k??&?''i@U''(?K]F???O+?My?E??i~?#?;??]?^ XV???(???''??????u??~?ª??UQ? -9ng''?C?D? ?w??w{?Y?G??$??&V?6?jC?j '' ??_ ??@aA??????7?w??y?''g??t???mO?/ ?Z ????uU?KC. ??Z??YgS9k?!?RH?>j?hV''^???/s?xD????R??;/??`?l1?e#D2gl?:??V??tl?d1??b?K?+=?[??????A|?????MG}j?W?????-u??? endstream endobj 54 0 obj > /ExtGState > >> endobj 55 0 obj > endobj 56 0 obj > stream H??W?????? }??L???,n??,\?;[?/??9"?s?[?gY1???ux????`?M={?8?-?`??,b??X?q??=??~??mfK???hl|?o????m??mZ?? ZX.???]??I?^??? ?Z n?=?Od??"VLkV7???/m?}U?uZ?l??????o?N?U??f???a???A?9?[?F??;??i?V;??M?????w??L????C?*q ??5K?e?_??_??T! M? u?mz???c?t?|S+*??~???????e?]??c???|??(?#??Vf??? y$?`\?>]}? ???sZ#???zT??????E??O?e;|?|???~??w??V?m8?Fn8z??W ?? ?0|?C}vv?/5?S?5r?=?*????W?ui?.??/??!??bIYe\?4W?}P?? ?? ?? /:?@fj?h?x??Ot??Z???e????8?}D?m?C??YJ??uH6n&m???N?H?Dr??2?q?A???"8N?X?>???hu|?½?o?? % ?b? e?Y??\?kd?????6x+ ?9?????4?E?Q???9:? A??i?K?u??#i??:!sc? (5?+?@6?n6????%?? ?????`3*??.?]??? ?$?1$+MdF?,m??s???4Up?f?4k?G???d. ?T?!??p9?????o?m??GÀ?D?q????*???V?+?5?=??k?J???????- "_ ?m?,mn?#??????C??????,??/?''?z\?^??n ???P????bII)3|u|d ???;???x??v???B??X???|?J ??k?2?q?D??? v????!??+? T???\????''Z?6??? ? ?n??T???P??}x??S/?>?2??\?9 ?hU??Z??BBc@???(??M? z? ?K???wA???.?l EC? ?b??? 9??P?z???h?k??4>???\Q??''???O$#S?e?q~7?MZ q??"??c??.?+? ??w?R?????mf?=??5?c????V??%0?~??/^?{???+{??bk\tx?1/?y?*????Cs?a???gDh;??nE?k`??? 2 > /ExtGState > >> endobj 58 0 obj > endobj 59 0 obj > stream H??W?n?H???]?B?6i?L?3?c??=-5??m?i?$3?C!?8?z0_ ?^B/9?Db?o?xTN?S????X?_?^?]Z??.&?o Z?& 9????????(?E 3???????s?8?v?f???~ ?l??"??d?=3?D(??T?i?j?C??k{???W ?*??n?r?wu3?????J???)?w???#tc??0z ?>d^??(=?????AN???%?-?=?[????s?N;?`.?l[?K???h????????Dl;??%l?x?????f&";??mk??\?~Ue>k??-7????+?x??]??i?Q?p???n??J??CO??7? @N?????nh??=W??g(U?@"??=n? ? k?*y??*/??^???????!? 2KZ????H?????? ?????+????le??Y??s?G?Q?/2? ?? ?I8?n?ZN???$?Q?A???|"XZ?I`dD??XF?u?i?????SGqz3]?P??Y~??]vt??hf?(???i?M ???,???''!¨wj?G?I?v?^?L\??/??OKE]?p??L5_????(?? ?????????"q?~G??ß? ?s??N???vf????`P?DPp????? ???zy???z???|? +5????????MEU??ZZ?h??F"}q??p?K???? ????? ?7???y ?"L?}??? ??n8??]?? ?wi?????K?=????n?E???&9?O[ock?k=Fb,&U???(~~??????/?W???uS%?n|?DD? ??D?\?#?v?A?| QN???(p?+,@A1?????g1 ?? E`?B/??|?????xB? |e.?5-??X?M*A??D?&?? ??7RWbx??[>C2]? ?/v?w??,y???????Db???:p?}w?=???*?\????#?{lF?Z?b;?c?7?a?4????A;???}o?!????^?g?u¸???z?o??Wf?\?C???G:??c;?b???1>??ct? ?R????W- ?je|x?F? ????b''???? ???l(`?e?e????????j?^-??k??_? ?A endstream endobj 60 0 obj > /ExtGState > >> endobj 61 0 obj > endobj 62 0 obj > stream H??W?????C| ?f ?}qx83==1Z?B?hM?A??  KS?W8??~YU?^??O>?ZX,??rO|?H?h?OR?z ??P??''?G????r?0???W.m?????#????H????t|?DRHEN@?????V?5~.???+f?!??DKH #?????2????r?H?L??3??j???p?f??S???.?6?J??WoiqF???uZR[h???W? ?`???????~????? ???? ?8?&[??uJ sBh=g`3^s5?_?p??B&I?? m???sK2w?xLw????,W??"????U??U??Y}j????sJ? ],?8z?;???/??~?Zb?Qh?Z?e???[??d?l2}6?? ???7>??w*_s??J=*?X??S?W] ?*??B???P7??3, ??i??#C?z?;??H???K??h?S_???E???L+D???M?a?5*?????S(S#?????\?[????? ?N ?z?M????q?l??????t???W??=0?;?y?$fX?hl?!e???e??l??A ??Z???%$?T=??!?gC_\?b"@PgrUw?[??o? ?Do?+||?{47?9^??"????\???????|V???P???k*? f?*C?W?R?6??? =M4N??A~k[q???C ?o\S tg??u??tyc"??h???/gzCn?:?8?s???_0?W}h?Uv?Nz39????* #????W6?0Q?E?I??cWb?????G???N?8? ?''???d????o%?N ?N??Yn?m?E??i????????[Vv?h?5m??:?r????81#??"???????o??]Tc?rS,? ?1??;V?????gs?Al0???|?????"c`;6?W?l???T?H??t??f?V?W_?;??f!? ???,8?? ? ??6???7??????M?iG1??jy????!?a????gEw)???;??h??s\?]?R??;?W????&t a??+?*? ??+???p"?? r??r?"???O?G?0?9p?{?x=???? > /ExtGState > >> endobj 64 0 obj > endobj 65 0 obj > endobj 66 0 obj > stream H?bd`ab`ddq??????J,Hs??KOJ,)?+??a?!??C?G????''X?O??>S??\?)?o 1032???hn?_PY???Q?????`hia?"?????TpL?OJU?,.I?-V??K?/*?/J,IM?SPp??Q?P?P?Z?ZT? qV?I?(??b?D?|z&??????E??Gl??4??@??E??????????Tg?5@a=#c;?B!?#???W?????????f\???????>???s??U??\??Y\?q???#??k???????v?O???`0k}? endstream endobj 67 0 obj > endobj 68 0 obj > stream H?t?yTY?+$? -LYJ*Z? ?N??????v1???-lC1.D" "??? \?*M?KTpiE?iP???3}C?F?????s????{????w~??` ?????z??????|??R?-B?MN??K???W''%??)?2?ol?,d?[?,$"9")?=?? U ? / k?j?u?3?6????&?:??x??xG?ug?&??=8?~;?DJ??l=g?N?_E??k?6???a?u? [??{?P+)b?6Ka`??8??x?t??yÅ?6??\m?M??h???3K?????n?? a? ?yf?|?3?7?/J????b????????;?^é{?}\?(?^?x?"??*r?:?1X??-??""??(l=rE?(?F?e? ?L? ?^???\??p?????+ ?K[?Z??$??ö?>N?{l??Z ??L??Xf*--3?:?4????''e?_?????????K??L?UN?!J??Z???W??K???8jud?@?99D?????{onx?N] ??U?]K???V?"y(? ???{?7?Q*? o??????[??T?JU??*?uw?]?0Þ+?}2?;?#7?{???~?w???( I?D? ??c\S??v?,z?Xb,?*?????C?a? H8 n?Xj0??F? !`?@?@????d?~??fG?MT\?8?hf????f??????z??????Y(? ?*??+???c?i?y????s?\ Yz?8*dE????0?`??????#???d?«??z????*??X?????oUk6???J?h?. ?5}HI?e???g???}?''?@CF|r:????m????x??.?P? ?g????UlF???m??z?znf?=?h??y??/???.??w?P?"e????*n??y?2*P Wg?uHvp??&???;??!????fE?&s?7?Fp?N:?d?2? f?6??? \ ?(?z?????q??8X?sy OQ????? ?4? ??y??cc6?????6??? ?????????? twR%!???+Q&Z??Xd?ux?NE?QM?x?9?"+U_?]-g?''"? w?!n??5tAZ Bà?X?N=??''??$??3?$#?9?m??Me?Y?T|FJZ?ro???Ne??}]?X?|?gZN6?.????QH+Q?#??????|??????q?*]&@N???C{???6?@???j?r;''n t?????r?X??^rJ ??M ????N???Z?? ?e?#c??cZ@??5l5w??''??Zp&?R???aKVbfTZ?|2?? U)|6:?2?0??1HN???d????,6?.???hh?&Z`?F?|?8??.Z@?(1??&0?zq?m?#? ?? ?1?? ,???a?O\.9l/u??o^?^R{??`?3''!??&??B??? ?1???''???:??/? ?e??S?s??? ??_??%? ?41?-??V??#?\?w1?6C{????????¾?%)?&?>(b8??q?]??''???? ?R?%?Wx???B4?T??^2x?.v?Ah?*4?FA+ax??? ?7T?}???F?8?:Q???k?!D???>?]9??+6??JH??''? ????r?\ ? ???M???V0~?????;??1D???.???y?Y????(?}??C??,E?o|?Dk7?eP?dE3?\???4?l??r?K??K?9W??\UU]#l???)??|?vX???(>?~-7S~8__?n?H"''???R" ??3?n??7??~??????;|???z??,u(|c?j%rA/????K?*??? ?b*?/????Ee\k$lpN@F??????(a,???dYz?|?^8a????y??\G??[?,?y????\N?eu??v?> !?rt???M(???%#~5??4P?D?P???TVOq?? _? k ???M?}r? ]%??H????9 p?@??????c??^????^i?$g5?ZS???U?^?G???wla???a? ?|??r?S3??s`KK??u?*? ?W?# ?N?*?&?TE?SN??E???{P,S },K??di?|?c????^g??w8?7??7>C\v??? ?7????*K????Bg?O_??g?r878t????????~??2??? ?M?ø?p?????P???s??dJN?,M?''? ????[??c?(%L??D.???s??7???Q?? ?t????`wj?????u^?n,? ?6???|c W..????m???A??Y^??t??? ?? ??X?O}???:e??????6X9?]?i?????w%?$I?x?.????N???,"?cRZ:,?????????@??70P???? $?S??U? ? O_?8?$?23?L??P???{$???:x??????hh?@?x??\?r?%0? }??+I}???j@V} ?h?{???8%?a_??a?v? ; ????2K?=9B ???D???]??d$-F`*?Ji??V)?rm?gt??????g`C?o?????s??8 |*mg????D?an?m ?ºO?2@P;??7?????t?_?u_`m&?a?j)&????????Mm???m?F?1????? ?]KhP?&??0D???PpD??\9f?? ?A?\? ???or?q?????????Ew?7?N?????"k+)?s?p?F??^ g?i?3???{,?t??{?&?(?10??tz??yL????=1t????D?t6}K???¨{?4^;??Y?|Y:?D?? ?????s???bLx??Ln?F=a???????%????|d ???e$vy}=U~?;???5?e?''???K????}????f?#uP?^?)pt????v1? ??????x ?jE?ULVQQ?WCp?wA? ??rL?&???~??o??~?}K?9:?n?w??*|???? ?!u?b)??#???a?A????^?M?U? ?????O"???????K???? ????,?????>??q?Hf?!??~u?^?f?7??''? ??{?y?W?=?g?Y??dJsG?v?H???$WD [wm^?y??+ ???6?T?????Q$???`?%??H?I?H?4k???-?R+=? rDi???????L2??*t?j{???A?? ?E?s ?Z? ?????E?/x??? %?!DiW?J??Pr?k??*??X??ƒK%?R?? ??5o??%?"?W?R?????G?>?????coA3?w???bl.?~?I?2]?C??@W?$8?3??j?:???1?{?O ??K? )Q?B ?xOK0??~ M?k@??c01??t??oqha ???? ?)???r???oj??nm????e(?_h????iLZ??`kk?????O????!F??R?2??x`C]??+?????q=??S???:?&??q??d>?????V??9?????????5>??>?i?4?V????1s?R?n Ln?K]???Y?4???3?y??v?G?X??Wn??:?{[{+1phc???R??? ??^?1y?F??t??o? V?f ????s?GoX(??+q?BI(RPA|??c6Ta\[???i?#`y?ESy?c?q?;???????]V?,A???`/?X?lP??????????t?q?-b???3N?4?tN k?????l???R??Et?????N??+:!?U????ar?3???W?????H???''? j???(???Z??????lr??tJ?CsKS+??h??[aQ??V??U??D????xu????????xa`8t??|??N??A?q???????l?l;?Y????j endstream endobj 69 0 obj > endobj 70 0 obj > stream H?dT PW??q?&Z?Q?E ??ADqV?F??DP@ ?Qv?t8?x?1s????9????? ????o??;????{?,?LI??]????2?s??gf???J?I]????b?g?????????F??/- Wf??b??M???f?a?0, ?bp,Æ?a:L?1?$,???$???tq?u?W?(}?????!??&HX?Wd ??L?S? X/? ?? &^?d?`??8??z??b*?K??g???g?8Qn?? ??pp?^?2???e?X ?&?`? ???:?Z?|?`+?W_???8??V?8?????0??????m@f4 ??ua??4????p?_?d?(?o2Ln!?{P??| ?0J?U,??*A?? ?]7??0B????s? ????e?]????h?l?????P????5???E?,J_o???[??"?Hn?`9W???P?0?+?j?~~S^???J)?????FN??->??????'??''???=?? O??-=^????o;k???;?B?x?y?^)?X?W1?h?=???c>?????E?)??\?&??4??I???d=?? ?Q???)q?9?I??Q?8??}%???dby?h?????={??Q^,? ,??^3?%?????? ?8>???7??Q.??]?D?]?/+>?: ?????E".?N?N D??"???{??J2?3???????>7?>?+??^???3?=??E??/l`???2??(?????k(??n?S{??f????????q??st????8?h4?n?h?i?? ?0????0EM?2 ?????3??EdAL?X!????)??B''?f"?3;????-U ?/??Z????Z?\??ßkJM?4???{?o?6??u"w?$P??fO `??m''???H???Hl??yi????E??5@???zP??i j???q???X? pE! U]?Q6??$[?V???z????-Z??`??.??D[? hdm|?Ms>??+?\a?s?|?-?og ??? ??????/ ?k???_? AW~YQXRp??p??o??[?????/>???>??*m??&(??????~2?En?K?????9????????"???Pq??N?,?v?P/D?~?????{?Q?SF{???>??"xI??:Sk???Yf\??}??L"?o?u????4? ?[? ??a?e?}:$0?????????7 ? ( ??tIc?!??????":???;W????"G?q?N?O?????_Dz?Y3=,q?????r?k????c??vX? ? > endobj 72 0 obj > stream H???{LSi?O?U????c?3?tc????a???"?2????P????"?+mO?P(??K????2" n`u?u??&?gg???;x???f??g?%???????} (*b0+$O:????H*?H? ?T???ZK? je?)6?? ?}z7zc{?^A!?{?a9?X1???(6?`t\?P???\?pm?G?_???aQw??E????ny?;?{??ba??e?0A??P+j?F??I(?+? O.nÅ''ŸX? W??D????([,?? ??pY?W?7?????j?$ ?}w? ?v??F?n??`??G???m???[???j>},?>??? ?_??'']n.?#jI_?\????wWr?Xd?t?D??s??m????v???0?Z????YG?jh>*I?\ Is?x?y?{???/*?w?HH??$?{????D??cr?y?"???}??k???????T?pYygn?1????,???? ?_5Q?S]x?p?h? ??????:Ker???? 3?h???????????5?AnE,wf?Y?b??tzK ?F??(|?P??@?#???tg? ?>?t"??T?3?5Vu?7? d?y?Q??E???o????{??o??K??k?]''@^?N?v????bl????T??????7Y?7??o?? y}?>\+??>???]7?/F??u???OC?W???i$e>% ?r?* ??P?q&/??/NBW?????" ?????w?????M?&???eN9!??H??????v????]X;t??O? 8$;*?????x?? ??????= ?????:,?R?Qla????????6??A?s?J!????????&???$.J/??f?????P]????*,???]????WUt?B??J??/?~?h??-f???iJeE?\y??Dn?p???a??[??_(??j?k?X??i?t???W6???`G6??;?k>L??LV?Ljv??d????''g?O??0?_???Et??ff??>???WM???? ye????!???my?l ?J?S??? ????=u???????U?EU???z?5?>W?????l???J????? ?\E????k??A??u?M???S?8?v?-)????j?i?????M?1?[g???/U&-i?????,k?NM???K!? ? v?y??}??`_???cc^6`? i(?@????-I?I?&???M/?Ru?VuQ????9???~?s??/?r?M?!?P{? okQi???`????W''??:Vo?g8???E?X?V??Z??{?0\? ?? ?$?L?& ??4d????C%; OS?l?x????2??L???W?e???5?#???0}?F/:2?=???[%N i\???e?S???8?Z?c?4?\!''K3O??7??Q?u-0??????S??@ ?#W]????D_????e;%/Y?MO?o?OC??8]??w???E?P???C)???`?A???Lv/??o????c#?O???????''?? G?JqM ??S1?z?u>0Gx????e? z?B]XSe0???=?d? ???? ??_l??????,7+?J????hh0st??a''b4%??&??_??z ?@ ???0????^n?~??Z?????2?s??y?3?A??u?c??Xb??A?Â?6s$?F#`nrD???) ??)??7 endstream endobj 73 0 obj > endobj 74 0 obj > stream H??? TS???M?I???j>ljD?@??-u"PD?`? @?#?7J?H?%| P??QQ?3?Jp??:?XO?N9:?V???v???v???u?iwnG?7?}?????8f??p?|7m? Z?HPhUIjWouB???V1n?eg???????s?w#???U?z|?pm??#????=???YUl?V??P????}?????????6YWL?U?u??H?lkV?V??* H?Rk???V?T&[?? ?uK??(S??tf??:?*U??i5?he?B/S???emV???_?l\?''S$E/Skd*fjZd?*Z????K?&?p??x,l:??°98&±w1L??a?[???cc,? üyX?=??1 ?ø???5c#?w?#? /O??X??????m??#?8 ?v??N??)''?LLm?>??0]>??}? ?_?7S9? ??QG5??D?r)?????9??!a?????8D?r??w?#W{??a?????'' ????C?G?]V?5??`\?}? ukc?????}?c3?a???x,??9? ?!??H?H??g??HD ??`''y? ????[??9#?I ??3?I?R ???? _????????V?U????Fs?? ??](????J???1?Q?!V????FiVu??ek???????y??t@????1"9 "&????6P??Z???w?6???2???a*?*cl?? u???)B>????.?`????|1{$z?4X3z?"??u?@]=?24D?6. ?Y??W}l??? s??t?)??x??@/y?*??S??g?[?>?! ?)4?3a?? ?$P?~?=l????Ex?M?B??L???????h??c????? ??]???;??5??????b?BA???Q??fA????o2??%?????{?? ?#3?N?i??? ????s?%?Y??{??O[,?z _{??A??h????W:?dCt(???}1??c????? V''??''I?K??1 ?''&?V???1? >?9?{??a?S ?cm?5????`?n???_??K??[XI0?L?K?B ~zW??L?1EL??)I?=??z???/|?????????+./??? "??u% ???w?#"??B ?\????bF??LC??LZFts ???R????Gq C?L}?>N?IK+??R{p-?|??D?Y??o???ao?y?)T?fmaX?B}C????A???\?'').???cJQ?? }??A?_?? /K?u??*aa???,???|???$???p?o???b?>???m? ?????RQ+1U???e?nn?a?>8h?GM??)6??=6?1o?}5?????*:gay??%?~V;??*? ???6?gj?F????F??????=????t)j??? D? $3??Fm??????6???,?e99?D]Y?????wh?7}Q?????W?Nj?W3???(????????lZ??]~ ?????|?-.%?????j?:??UmcN???rKe c????._Y?0??p"p| ?i?GZ; &#?Ky??S"?2}??j?9Q5???l4iqGbG?4{???Bm*??\Q?(b?[???arX?h?K{????+b?1?? ??d?I? ?{?k???N?????Q''?ctA?m}*I??g ?5??l|??tD?;?!????=}? ? ???/!???R?z&?5 &???.?E???!!?$V??8x??$?H??.?j?)?????Hay?}???Jo?t?L??M?Nv4N''???U??1?3?????'',I?????/???H?n?i?\?U@?sr?o`9`?pR?=?g?3(L[1H9''$?L???= O!5??p?2?.?u''?+Y|HF?h??a?K???Y??7b?N [??Pe??4U?tP??IE??G?4U????U9?M???F?k??~?????h????)h??????RD? =?=~??Hvv5^UB??ETu???R?^T??>??? >??????y?G?|??C???{?m??3???? %??? 7u?$?G?kv"Y?daTK?=?/???g?I??p¿? ????,i?A?U? D|f???T^UFh?? ?`?gsa????+??S?k???wf??>??????%??????}??}????\JXK/hj?Cm>B?e??p????{??N?i?}???? ?9?yJ?:???{?n??9 h??????@n?-??{?t5???v?4_?:?CU???xcr?)B??X(K!VnA????? ?{???!I?d?v?Q?3????d?{?bq?k?+???Y??u?Y?w?u??ef??Oq?@L??6C? ???n?s?`c"?D35O3H+??S+???y??w`t??v?>???y>???????H?1]?M1~? ????foV??[ ??9?4;Q"%y%--??!I==???4????????i???''??J?=D?seY[?????|+?fF:???u5??"?V??????S?($??8?C?b?7?!??6? w?s?_???w ?,0Q???J?SO?s??G??u????O??|??????????????4??Z??U?????,?????/?y}}"?^?L+{?,B~^?P?`????T?dp??v ?r??V???I??]??]j???t?x?zg?`?2Y.? ?K?]????_ ? s??$=9????5?2??4qz??X??P??PJ?z7w}yQ???rj??UNy?:??bv??`m ? ???2?????9P |?T/%?R?Q1;??L????j?B????Tg??q?m@[?sX?6K ???? ?"!AdL~?"j [?MFw?C?? ???(B!]?bv??J?>?WF?Ht\cX}??G/{?A[?Ke??? ???????9E??>SZ??V??????P8WO?;`/;?Uh??Vi?{??Ez! ?? v/Q??)?4?x!??)G"L?g??r?]?h?_?.t????]?dk]E%??????>?Lf? ?lzR?????Z?TJk??D4V??\ ??w9???F{,?b ?U?????5o[????{2?0D0)8?z???) Yf endstream endobj 75 0 obj > endobj 76 0 obj > stream H?lU PW~=CwK$?X??&?-xbPAX????G?D? ?b??x?? ??,??S????a?AD1???K?????? ????????????????Q?FC(??????????????1GE?G?O]`??R?:? Ei?g ?.??G???w?ym?1 3%5zC?qIB?99??5?h?7??8)FStJtr?2????\d8!: E?xB? ?J?,B? ?O?a?c@?`-12V?h???!?H?#u??z??C?S ?5?D?????|?ug?4??????L?"?? G?? z=?J???)?9?)M?z`??%??)?9t???v?q? Zy????''a?X?,v?{H??0W?|??M??{? ?1?n$t?;?? N?Z????N??v??*?E?????%?: 4?)??v??? ????>?| ????:???_?K??_Yh?q???)O??t\?>}VX!,??4.5iQh????c%???7? *??u??z~???????D6\?h?a??F?A?????b? ??b??q?Z??aw??????y???^K??6?6[?T??*??yr??#g?þ???u ?`??q0??F??_???G?8 8?:F?\9x?A????-X????????z??N{?? ???1?N???`?ti?7?#bnU2??:ZX[??q?W????H??3 w  ?k????2??){??, ???@e+?w?\K*?Z?uH?? bfM?$??,?PG??[*Z?j???b??xk??uT?U??+j??w2?xn|?''??. M1??5a ''?#c2 ?iQ?q||?fs????y??[?;ta?8w?????&??R?R?l?b?qV?Y??r??*j3Nh??*?R??LpR.?''?d??????qG??\?PWW? ?????U?S??r???'' N?fRb??d!9/5;m?Sh?l?Y?oe J?`?V?n?? }???k?w`????E?Q?f''?3%\ %???1@|?&??l???4$?bVW?=?C??V.????Uf&`????????C?U???#Q?? ????o( Z$?o3?C0??B1???C!???~la^)?{????w???A????j?y9Z?V??$a????^8?ot??ob???? ,R???S/:D?P????A????v?S?LE?????W????E2)??????:?_v??????N''??ok?? endstream endobj 77 0 obj > endobj 78 0 obj > stream H?tUiTW???z4[??????GA TD"?.(Y?]???M?1???#??? "*.?q=???!??8zf?&??????9Nu ??u?QU?????~??wIB.#H?>Z?rED?K??i?)?:CrJ?O?vkJ?!6?j?-??*W?j~? ???\?*?y7?v#??LGhu???#?N? ?$k?{Cu?????d?zf???/00@?$A?UG?f?[???:}?Nk?&?V?????W[????Z?QZ?? U??J=NK????U?I)??6Am??&h?????D???kH?eH??r3????Zu?D iy?5???)AJ??? ?)???A???$?DD??%?A?G?''??27Y???=?J-???C?\? ?=??;???d? ?nJN0?Z!?f??)?2`????????\?e=?~L???#y??? ??[? ?@?4!"??~??  ?}?\??\}@?@$??? ?U??=??M%?w X? w?`?n???????ZQ?*???NV?)??N-Q?Y?{? ???e????OTt??c?????lR^?? b"?U???M;? h?4??05p ??moo??vL??j?^?o?)?(z??9&gQ?l?X?tG?c??1???m^?''oO??''??;?u???E???ro ??G??1????cnG???H???I[^???F????????X??l?Hu??6?br ??z?@?\L????{gHs;????&?q?`??d?1??????Nu???????[jj,?? ??0?j?_?h? ^F?2R?2???\?.y#\??RT#??2?!???HJ#??/?s? r?vx??4???????R?P????M?B7j?\???L?&V?K???1-=???u?????y&????5??!??3?U??| ~?gO7Y??_B\?P????s?~?n:Jk,?4?6????Dx????8v?m,?U?8V???n ??c]???????y?`z??Jms????ob???M?9???? ?8i?n=96?p_"??+?>????II?v ?????f p??"W???:?? ?eI??w?a???(?E?_BZ??k???Zd~?|$?0???H?????n3V!?~?=~?9?T?m???~D ??+?3R1??H?hE??#?T6#?Ÿ???0CQP?]Q????&W???"??{?rw??P??I??????A?h?V#????z??r?$y??c~|7?#?H=?JF6"y?????d&?0?''?`a5??#???4c E:ljO!?h-y}B??ze?x?(?9??X?&?!??.?i??!7H???$??L????(????e?X/???J?oa ? ?Y#J-)?}?-59??/@?S??.4?5?.????f?QG??=?V?B!0?*???*??8? ,?I?/??l?[???[ h1D?????a?;?h8.~??M???? endstream endobj 79 0 obj > endobj 80 0 obj > stream H?lTyPy?&??p%6jZ?QAE?c ?>??[$?P??`???v??\? &V0A&@4?/h?''?sL??Q?/+??J??}iv8???hR9/? ?=??2??D??{Z%+?`?RZ[??U?d9??8??????4?????5?0?u ?,?vxd?? ?1?i?r?&d??Q1ZM?~?h???-;cj?6gG?\???w`8B ?`!? ?Y ? N?O-9[SX?=o?? ??J??]??G???? ?^TO]uP????2 &????!"$Q×@0??#???oP?;8?F?)?F$T E?R?? ??-e>Z?Q0R?b?,??????|?+,#c?G?.>????????6?u?Wb_?.??''oX??????w?T;E)?@????R????YQ?D?M?2?7?f$??Es$`I??? o?B%?0g? ''{??q?E?????? V?f?N?????n?~?????t%?B!?l(}|?W???1??\/???=??/??4??M??Yi???-a6????_??.,5RR~K?????4w????] ??-8 B~/?.?DtL??g?? ^??C??MCv g c4H7?o?V?#.G?,??2?JU:?!  UTL???7??M???k?)??>P?????zy?w????n?|aê?l????|????h{b??m?????pV"??s- ?{u?k??????CY?, -dM?~?"*?!?\????u??????g^??kBh?????e`?????m???#?`c?B?>??h?5???.?">_F#|/6(3^????Ly???/???\?>??8A??O???C????!?Md ?a?jc???0M?{?X;å??{EQ?NI??J?8??c??2?-?i)???- Z?u?dqn????b?[??.CeQ??5/?vZ?q?sO?9?s??y????? o1GN?r#!?RA??,?$.??; ?I.K?5?v$??? S?1g3!g ] ????;??ü??U?_??X??wfW??Q?Xq??drI????Ju????K?l?7????NS??b+??%h?;?!8????>?d????? [?I?a?k?z t??-? {?F?R???g.?j???+d???N]mH?????_%???6)&>??s? ??)???^??J?I{*??L ????AdTHA???G?{???????k????0P???(>???''???`U?& ??R _?J?? ??Z?j?G?:????? ?O?w?????0???"??C?L????G:???Sg,?(?U?G???a??=?O???u??8B[5(?;Gaw?N???{G? ?vEjmFK????u?N??U?T??yfHc,??E?H??P" ??T:3??? ??KN{s?????f???iZ???=RV&m?K?p-8@???T?|! ?`!???Q > endobj 82 0 obj > stream H??UkPW??f?i?=?3??D*?? hHPA??????;?u?F??vS????[ H@Z?L????Q?h|be????????n??c??u????????KrA????/???K?]?Ui^?5???i}f?c?iH4^?&???p?(5?I??X???+?u?c??_{2?\Si?XR???S???f?>pN??? ?c>h?????????YzcIaQ?B}?o? 6? 2???N??#??? ???¬?bi?m?)}?L??D1MN??*#> ?R???J? 3A??? "? ]?l?w?"Nn?Rd&?J??o??H?jB???&ed ?D??d!2?l?l??V??r??#?y???r?????;???g????=?>v?w?u?A??(VR??{w\???*?&?{.>.?.U*????J?YY??"??v]?Z?:??????w?w??y?x??8??????s???????u???5|3?Uy??8 ?HH^ ??????eL??? ??j?M?6?O??c?e& ?x :?qK?? ?c??=m???N ?m????M???g>?w??U?l?:?]YI?w?n?v????~_??r''??\i;?9y??AW?d?J~xQOx?"?yW?C?\???]*??C;W??.?,?C?@????1?}&^R??%47*???p?B?Q7#?aN??>?wa????* ?@?U7?}??D?y ?a?????S?~q?i?7???nX??4??%J?@?:?E?J??o?T?? ??Xu?i*p????s?7??$?b_+?A?H?a????C???TH? "$@??S ?????T?G?mt??I?-V?9?R??OBZ?Tap#?&R???[???dfe?67?h??RH??9?bF ?6?q?5A?0??#?? *[5??_???aX???v ?''?Q???z???d ?v¤??$?jE? ??(?F.|*?Y{??egp yY?_F? ??v? 0?%??q?1 `??[?A?????4? ??+7?;?kt?lO]?? ???X??m?{??)??1./!~E?0?Nfx?=~e????W"????t-?l|?K???e??u?k?8 a??`?{Tk???~???Wag ??e??:?????W:?I?2$j???lQi????>???Aj??i??W?$?A????3d?d?y#\$?? 0??N??~M?~?B???????????m?cv? ???8y????l??3?? ??p??????*?*?*??x6??U??-(?P?V??F????Q>c:L''?#? /o???O@V??????''f?QG~??&?????OG??????{???Wnu?a??4!#3;''],?Y?k??6h=]q(X?????%1?3??d*?va?????@??WN??rSOd?? ?|???F??.??*?n??_?7?{??6m?gP??????F?Ih?e???({A>[e?p??wa??k??Gp"??_??!3???????+=?gz????d?-u??$?B%?S?U???????;u}?lT??Z&?.*} B?2????#?l?z??4(0??}?[??z?k????]?t??b???qB?!q?z?$??u??`?%??E?G ??{????v?/;*?~%E?X? ?|?;w?;1m[wl?l??(?n1??l????g?n???yA?''????r??? ?!??????au{u:?Jr3???c?3O×???N??#C]>UN%??`?XQ??l? ?V??S`?W? )?{???c?w@=)yT???a??=U????+b?V?vx?o|(g?o???7?UQ?????Ix_??}????????9 ??#?`???5?7g!t8$?^y?Zz??????l?Wy$???????????Q? ~???l??KR?E?)t?=bE???2?????:?t.j?? ?''qI?s???4?1?''??U 5?z???o?p?(???X]W??????5[???@%E~a?^?3,_?3d?B?c?Je?n? ??$u?''Y{d?5x?????fo??A???H_m?B???Rk?.??P[` a??V???6?1??3?dR3;4[???B????3|GqX?4?f??:\v?@?i ?r??FM??Vs#?J)????MFW??^??(o?f??g???s??5???2?xw?O@j???n?(?l"i?+???''???????^ID?B??.w?Z??C???r?}+???????\0?^?@''?k;?>_[??6?????3d????O&?U)?{???u??#??????. q?%?!????!?p??]?pN`I??E.???m??e???Y?O??????M?g`???7???????!x*Bq*??fA?|??????W??{XD?5??-?_?j endstream endobj 83 0 obj > endobj 84 0 obj > stream H?lSkPW?B??Y6hv??X??#?V;?3?*0B?I ?7?@+??g??? P,?Q?V?:?jG;?????c??u?????????9?|?9?\?? ???[7E-?b?9?Y???? 5@?U?,/?~)?|?9_?i?????|1????05????&:{??,?>]??,I?gV??^???Wv?A??W??[?y?l#?1''5?5?? 7G??$X ?4u?? ????_????K?I1?[??a?X??b?X,KH|?0!&?|?? X0???V&,? ???uoPJ?R? HP 5B??g?AAP?!??????? IBn1? ??ScVe?y???s5?-?-?? ?=?p? ???X??Mp?`%,???+\???I?@W?? [rM???ewNZ?Z(??l5?A????x:A??Q?@k @K?? ??X?G??????ej?r??D?K?h.¯.?Wi?-f?IP?P?A?tR?lqo??"Q`2?E?4?d?/?uu??|7e??s??%?A?V??|??????cSC6''?k;??)????ct}Q?????>?f :?>/?Bn!l"vb-??X?k??G]?n????????!?*?"?;rJ?t?v????v???????????M??(????C??G?Hb?U?ZDC$Z q ?????I??P''??f??D??3??r?*?@???/?;? ??hv?v[=???????Bk???dM/u???$????5???s?M??&??xUY+] ??#s??? ???p?????geZ3?Ehq.Z?6?O?Z? Rtq ? ??.?7?1 FuT????6Tgg?????X?B?t?8??+??X%?r?N ? ;? O=h?? ??)Z??X1~???????n?}B??????D?"?~?--?0?S??,Er???;????9??`??n?u?>??@????nF?oP?GB?jHM??-''????&h|??.((- w??!?1?Ÿ??Cjn?s??Z?Hi???(??j??P9fQ?p???dx????uJ"U?dN?D?????? ? ?? endstream endobj 85 0 obj > endobj 86 0 obj > stream H?lTyXg?!?d!"1??q?`E@?V-?*hQ??R @PS?r_?\?5J????k?x?TmO?nk?k??v?v???g??????~?????c>???$I?+#7F?[={?I?????\m?I?%????u??"K?>Rq??7?CU??^?EM#?V??''ã)C>n?^??$[;? ?|?.5-G?K?%?_?h?|_8q_ ????Bt~v?V?-??L6???&G?2W?22?(''6[??fkMfl]?e??,?g]?.[?&m????)B?I???kL?a???LM???????;4?Za??a?\g^?/U???A???B?? x@/E??e?XN???!\?r?%?!)r?]???.??0?? Y??????(?F?7?L?{a:&??G=? G?P ?>??u?6E7???ml?W^???????G8g;? ?1???$? ?x?Z???-??t6?O????}]J1??1!UKnm????s??;zx`???r??J?h9?zP|-_8??4???HZ m?aAi?$?4pP ?P%x??D %?>?`??#/?!A?????{??V%X?k5?cz??I?bX???? ? ^ ??????W? ;U?X1Xc?0???p?*^fD??? P??do?I??Mo?p?? > endobj 88 0 obj > stream H?l?PSW?_?]i:??s????-n?*??leDP?? ?VT0@ ?ABHD?+V?RP???(??@(BAH?PJ m??L?k;uU??3??v???U;??=?s?+???0?HD??? [bVtz?!?hI?n2u??^ ????t)#y?Dj*?b1?Bb????K??I??7?L??~/?OA.??u ??9hd-]''F??aE ???O[}??? d?. ?F?|Q?fQ$?????????\?x?&????/yDv?O?G ] ?m*????-?z??s||@?V????|?????y????4J?v?]????`?zG???SuC?,y???+?$??T4? ?|+n?( ???]p?s?bs??\???vld??.%]x?fUDE?i??W?G&gV0?*a ?6~?$4Z??X?j_??&??{?q?G?1????6??{"?^?????? fX??x ????/?6_?,?''?]\|??3???0#D?x???U?h???6L61????q?w??n??^I??iSE?U???]??]v?o?x?`?0=??f?-??h?|??m?5k]BML??6K?3S?I4e? _;?9??????6????a?2J??r`??n???O??Cd????x{?n????i??-"?>?I ?C? ?lezt??F????6??"/+????U? ?>"???PJ%?=???????m{&?X?%C??c?ZDla?UL?i???c}?5???e??r???h?6E?L&? g??K"=)??~?&?p?c?}B?^?>/!?Z???L???7??C?0"$K?#?BH?R m;e .?1?Oz?G?9??????''???#?O? > endobj 90 0 obj > stream H?T?MO?0 ???>qH??j????b?{???M??;??c7e?CS?_[~-???}?&oip???O8??Nx?H?s?r?O???c?8a?????)]a???????1u? ????$p????=? Jh??b?l???????|?K?????d?????@???PYqj?ME?,K?FW K?)H?dH?+?z??Ue??)^?hI???b??*w?l T?A?A1???C5???#nP??@?5?Qs ?? > endobj 92 0 obj > stream H?TP=k?0 ??+4^???P??,W2????g+????? ???}?z?''=????''?o? FO?q +[? N?@ip???hgAf?- ??m+?{.?78???o?@??C?4??>>31?1~????????g_? ?? > endobj 94 0 obj > endobj 95 0 obj > endobj 96 0 obj > stream untitled endstream endobj 97 0 obj > endobj 98 0 obj > endobj 99 0 obj > endobj 100 0 obj > /ExtGState > /Shading > >> endobj 101 0 obj > endobj 102 0 obj > endobj 103 0 obj > stream x??XKs?8??W?i??i??3??$?:?Jf xa?!?0?q?? ???p?I??Y??ko????k??4???pB?v3??????5?U?~+??yq??ijt&??0?w?w(?$?? a? /??$???R?Y?YX}???^,????`y?eB D~$ ? ?y?X?????X~?/QE??? ???9B?? A????+?eF* y??????7p? ?.????kl???4s%??|? ?| ??t{.?Z a???4?t?)?5?c?''#??#?d?m?q Rd??nH?eo????Hw,?7?[?>?5RJ?i?V?1?vUm?^P???h?L????;G4O??G?g?dE?X????+%0?]??H9?,?GG?;??Z56$Y??g9C?????èlCpuve}??X?#????keY4ke???SGv??v?f?X j?w? ?0????LN?V?? >???|F3???L??E??) K?N??? ??6?!??8?~{????o//^-????????????????u endstream endobj xref 0 104 0000000000 65535 f 0000000044 00000 n 0000000129 00000 n 0000000699 00000 n 0000001096 00000 n 0000001557 00000 n 0000002075 00000 n 0000002554 00000 n 0000003005 00000 n 0000003446 00000 n 0000004081 00000 n 0000004456 00000 n 0000004872 00000 n 0000005254 00000 n 0000005434 00000 n 0000005563 00000 n 0000005666 00000 n 0000005805 00000 n 0000005943 00000 n 0000006036 00000 n 0000006120 00000 n 0000009319 00000 n 0000009490 00000 n 0000009574 00000 n 0000012715 00000 n 0000012896 00000 n 0000012980 00000 n 0000015740 00000 n 0000015923 00000 n 0000016007 00000 n 0000018976 00000 n 0000019145 00000 n 0000019229 00000 n 0000022322 00000 n 0000022406 00000 n 0000024892 00000 n 0000025051 00000 n 0000025135 00000 n 0000028899 00000 n 0000029048 00000 n 0000029132 00000 n 0000032382 00000 n 0000032551 00000 n 0000032635 00000 n 0000035885 00000 n 0000036066 00000 n 0000036150 00000 n 0000038483 00000 n 0000038632 00000 n 0000038727 00000 n 0000038838 00000 n 0000038922 00000 n 0000041000 00000 n 0000041084 00000 n 0000044232 00000 n 0000044401 00000 n 0000044485 00000 n 0000047686 00000 n 0000047857 00000 n 0000047941 00000 n 0000050218 00000 n 0000050377 00000 n 0000050461 00000 n 0000052728 00000 n 0000052889 00000 n 0000052989 00000 n 0000053201 00000 n 0000053595 00000 n 0000054147 00000 n 0000061886 00000 n 0000062222 00000 n 0000064335 00000 n 0000064658 00000 n 0000068633 00000 n 0000069071 00000 n 0000075021 00000 n 0000075374 00000 n 0000077496 00000 n 0000077864 00000 n 0000081674 00000 n 0000082047 00000 n 0000085404 00000 n 0000086056 00000 n 0000091322 00000 n 0000091606 00000 n 0000093182 00000 n 0000093499 00000 n 0000096015 00000 n 0000096308 00000 n 0000098120 00000 n 0000098715 00000 n 0000099106 00000 n 0000099168 00000 n 0000099457 00000 n 0000099485 00000 n 0000099526 00000 n 0000099688 00000 n 0000102552 00000 n 0000102639 00000 n 0000103807 00000 n 0000104004 00000 n 0000104260 00000 n 0000104341 00000 n 0000104435 00000 n trailer ] /Root 97 0 R >> startxref 106536 %%EOF

Table of Contents

Acknowledgements x

Foreword xxiii

Introduction xxv

Chapter 1: Getting Started 1

An Introduction to UNIX, Linux, and GNU 1

Programming Linux 4

Getting Help 14

Summary 16

Chapter 2: Shell Programming 17

Why Program with a Shell? 18

A Bit of Philosophy 18

What Is a Shell? 19

Pipes and Redirection 21

The Shell as a Programming Language 23

Going Graphical — The dialog Utility 75

Putting It All Together 81

Summary 91

Chapter 3: Working with Files 93

Linux File Structure 94

System Calls and Device Drivers 96

Library Functions 97

Low-Level File Access 98

The Standard I/O Library 109

Formatted Input and Output 113

File and Directory Maintenance 120

Scanning Directories 122

Errors 127

The /proc File System 128

Advanced Topics: fcntl and mmap 132

Summary 135

Chapter 4: The Linux Environment 137

Program Arguments 137

Environment Variables 144

Time and Date 148

Temporary Files 156

User Information 158

Host Information 161

Logging 163

Resources and Limits 167

Summary 173

Chapter 5: Terminals 175

Reading from and Writing to the Terminal 175

Talking to the Terminal 180

The Terminal Driver and the General Terminal Interface 182

The termios Structure 184

Terminal Output 196

Detecting Keystrokes 205

Summary 209

Chapter 6: Managing Text-Based Screens with curses 211

Compiling with curses 212

Curses Terminology and Concepts 213

The Screen 216

The Keyboard 221

Windows 224

Subwindows 230

The Keypad 232

Using Color 235

Pads 238

The CD Collection Application 240

Summary 254

Chapter 7: Data Management 255

Managing Memory 255

File Locking 264

Databases 281

The CD Application 289

Summary 309

Chapter 8: MySQL 311

Installation 312

MySQL Administration 320

Accessing MySQL Data from C 335

The CD Database Application 358

Summary 375

Chapter 9: Development Tools 377

Problems of Multiple Source Files 377

The make Command and Makefiles 378

Source Code Control 392

Writing a Manual Page 406

Distributing Software 409

RPM Packages 413

Other Package Formats 424

Development Environments 424

Summary 427

Chapter 10: Debugging 429

Types of Errors 429

General Debugging Techniques 430

Debugging with gdb 437

More Debugging Tools 445

Assertions 452

Memory Debugging 453

Summary 459

Chapter 11: Processes and Signals 461

What Is a Process? 461

Process Structure 462

Starting New Processes 468

Signals 481

Summary 493

Chapter 12: POSIX Threads 495

What Is a Thread? 495

Advantages and Drawbacks of Threads 496

A First Threads Program 497

Simultaneous Execution 501

Synchronization 503

Thread Attributes 512

Canceling a Thread 517

Threads in Abundance 520

Summary 524

Chapter 13: Inter-Process Communication: Pipes 525

What Is a Pipe? 525

Process Pipes 526

Sending Output to popen 528

The Pipe Call 531

Parent and Child Processes 535

Named Pipes: FIFOs 540

The CD Database Application 553

Summary 575

Chapter 14: Semaphores, Shared Memory, and Message Queues 577

Semaphores 577

Shared Memory 586

Message Queues 594

The CD Database Application 599

IPC Status Commands 604

Summary 605

Chapter 15: Sockets 607

What Is a Socket? 608

Socket Connections 608

Network Information 624

Multiple Clients 632

Datagrams 642

Summary 644

Chapter 16: Programming GNOME Using GTK+ 645

Introducing X 645

Introducing GTK+ 648

Events, Signals, and Callbacks 655

Packing Box Widgets 658

GTK+ Widgets 661

GNOME Widgets 676

GNOME Menus 677

Dialogs 682

CD Database Application 687

Summary 699

Chapter 17: Programming KDE Using Qt 701

Introducing KDE and Qt 701

Installing Qt 702

Signals and Slots 705

Qt Widgets 712

Dialogs 727

Menus and Toolbars with KDE 733

CD Database Application Using KDE/Qt 738

Summary 746

Chapter 18: Standards for Linux 747

The C Programming Language 748

Interfaces and the Linux Standards Base 751

The Filesystem Hierarchy Standard 755

Further Reading about Standards 758

Summary 759

Index 761