You are on page 1of 883
Helin Motpio Puyapy CroyHe OCHOBbI nporpamMmupoBaHnn Linux = “u3syqanne Canikt-Nerep6ypr «BXB-Nertep6ypr> 2009 YAK 681.3.06 BBK 32,973.26-018.1 M97 Morsio, H. M97 ——_Ocxonbt niporpamanpobatiia » Linux: Mep. ¢ aurn. / H. Moret, P. Croyxe, — 4-e nam, mepepaé. # aort. — CII6.: BXB-Tlerep6ypr, 2009. — 896 ISBN 978-5-9775-0289-4 B serseprom vananni nonynapHoro pyKowotcraa JaHtl OcHOABI NpOrpAMMMpoNANHA B onepanwoHHol cacreme Linux. Paccworpenst: Hcnonbsoaanne GuOnKeTeK C/C++ H eran AROPTHLAN CPEMCTH PaspaOTKK, OPTANHIAUNA CHETEMERIX BLII0HOB, amLIOBEIA BROA/ALIBO., BuaMos(eHleTBue Hporievcas, NDOTPaMMAPORAHKE CpeICTRAMH KOMARRHOM OBO1O'KH, COSa- ue rpaduveckHx TomsoparemcKix KuTephelicos ¢ NOMOMEIO HHCTPYMCHTANDMEX cpesCTs GTK+ wns Qt, nprMerenne coxeros # Ap. Onucalia KOMMAMALE MpOrpann, ¥X KONTOHOBKE © Onineorekamn # paGoTa ¢ Tepmunaibitam uso2oM/abiBOstoM. Laie npHeMbt HANHCSIHR NpwioxeHuti n cpenax GNOME® u KDE®, xpareme: aaHueix ¢ Hcnomssonetnem CYB MySQL” # otnaixu miporpanm. Kura xopomo erpyxtypaposana, ito gener oOyyenme ere H ObIeTpBIM. Jisn norwdiouux Linwx-npozpanssucinos YTIK 6813.06 BBK 32.973.26-018.1 Ypynna nonroropky wsaains: Tapes peaiacrop Examepuna Konoysoea Say. rrantioro penaxtopa — Excenuil PoiGerxce Say. ponaniselt Tpuzopuit Nobu Tlepenonc atsrrmicxera — Tamoarrot Koporanesott i Penaxtop Arma Keeani + + Kosrerotepnaa sepera — Otazu Cepeuerxo Koppektop Suna Asnonpueta Opopmienne Wrenn nen Beasesoti Ban. nporsRosicT#oM Huconsi Foepexes Anthofied sasdaton ofthe English edition of Beginning Linux Prograpming, 4th Eéivon, Copyright © 2008 by Wiley Publishing Inc. Indianapolis, ‘Indiana, All Right Reserved, Tis warshaion published under license with te original publisher Jain Wiley & Sens, Inc, No par of this pubfiation may be reproduced, stored in reteval system or Aransnitedin any fomm. or by any means, electronic, mechanical, photocopying, recording, scanning ‘otherwise withow either the prio written permission ofthe Publisher. ‘ineemarks: Wiley, the Witey loge, Wrox, the Wrox logo, Wiox Programmer to Programmes, and related eae dest are wtemoatks or registered inademasts of ohn Wiley & Sons, Inc, andor is afliates, in the United States and olher counties, and may net be Used without writen permission. imax iss radeeark of Linus Terai, All ater ademas ate the property of thee respective ownets, Anropioomansi nepeuoa skOMiCKoH pean, waitymesunll Wiky Publishing. Inc. Indianapolis, Indians, © 2008, Bee tpaoe senrnuer, Tlasotowexa x xmaniie 0 rumewsaoRnONy Aoronopy < Joha Wiley de Sans, The, Hinaxan wach. wactorineh MRM ue aoa OUT ocupowapened ume wepersHa 9 x=xoh Gx 10 uN Gusno GOpME % SERIAH Gat To nul GEEID epaacruaMn, Gyae 7o MacKrpoNiaLe MAM WexEHASCCHHE, ncmsae GorexcrapoNAnUS, SRIMCL 4a HATHA HOMTENL, cREAPOUAENE HE TOMY nodObAle, Sanicana H G59E! ZAM HAM pRaMCILENA ‘exrportox KeH- nudep m DHIpKO ¥ KoUIKOH. B ceoGosHoe OF paGoTst Bpema OH yANeKaeroa KuAccHUe- CKO} My3eIKOKK, OCOBeritia crapHHHoll MyXOBHO! MysbiKoil, 4 bororpadwell W upHiaraet MaKcHMyM ycHavit, YToObI HaliTH BpeMa Ja Mrpbl Ha NMaHHHO. BnarogapHoctu Aproppr xoTem# Gb noGnarogqapuTs MHOrHX sOel, TMOMOraBLIMX CAENATh BOIMO2KHbIM vgaanue KHATH. Hein xoren 6u1 noGnarofapurs cBoro 2xeny Kpuctaiy 3a MOHUMaHHe HM cBOUX seTell Anexcahapy u Aapnana, He CIHUIKOM 2kaoBaBLIMXCa Ha TO, 4TO OTeL, NPOBOgUT TAK MHOTO BPeMeHH B CBOEM KabuHeTe, 3aNHMasch MIMCATENLCTBOM. Pux 6narofapen cBoed 2xeHe Aune wv cBOuM jeTaM, JbkeHHUdep K QHApIO 3a MX JOATO- veplieHHe lo BeYepaM M B BBIXOJHBIC AHH, KOTAA OTELL OMATE H OATH NPHHHMasCA 3a pa6ory Ha KKHTOH. Mb! xorenv GbI BLIpaIHTb UPHSHATebHOCTh COTPyZuHkaM H3AaTenbcTBa Wiley, KoTOpbIe nOMOTIIM MONFOTOBHTE 370 YeTBEpTOE MBsaHHe K TlevaTH. Cnacn6o Kapon Jour (Carol Long) 3a 3anyck 3roro mpouecca H ynaxcwBaine poGsieM, CaH3aHHbIX C KOHTpakTaMH, oco6as Gnarogapuocr Cape Linaep (Sara Shlaer) 3a uckmounrehsuyio pesakropeKy1o padory « Tavorw Boporunxy (Timothy Boronczyk) 3aornminmie Texniw4eckne peuer- aun. Mbt Taicxe xorum rioSaarozapure Jpxenum Barcon (Jenny Watson) 2a mowcK CpeneTs As OTUTATE HeO>KHAAHHO BOSHHKABUIMX AONONHATEIBHBIX pacxooB 4 COnpo- BOKHeHMe KHHTH Ha BCex ANMHHACTpaTHBHEIX ypoBKax, Busy Baprory (Bill Barton) 3a obecnevenme HamIexKauinx opranmaaiHh 4 npesenraunn u Kumy Kodepy (Kim Cofer) 3a TUATeENBHYIO KOppextypy. Msi TaOKe O¥eHh MpH3HaTeNbHBI Dpuky Doctepy- peoucony (Eric Foster-Johnson) 2a ero darracruyeckyio paGory Han azasamu 16 4 17. Mbt Movkem ckagare, ro 6narojaps crapaHiaM Bcex Bac KHHra crama syUINe Moi Taioke xorenn 651 noGnarosapaTh WalHx pa6orogatenci, KoMMaHHH: Scientific Ge- nerics, Mobicom u Celesio 3a noaepxXky BO BPEMs NOPTOTOBKH BCeX YeTBIPeX H3aHMIT KHHTH. B saicuovenne Ham Xorenoce 6t1 BeIpasHTL rnyGoKy!o MpysHaTenbHoeTe ABYM BarKHEli- WMM HHMWHaTOpaM, CeaBUIKM BO3MQXHHM TosBnenve KHurM. Bo-neppbix, Pauapay Croaameny (Richard Stallman) 3a ovmmnnie cpenctsa npockra GNU u wiero cpepst co coGo/uo pacnpoctparsiemurm mporpaMMNbIM OGecreveHHeM, cTapuNeli B HalllM aH pe- anbuocrsio 6aronapa GNU/Linux, 4 Bo-BTopbix, JTanycy Topsanvacy (Linus Torvalds) 38 HAMATYIO H TIPOMOIKeHHy!O HM COBMECTHYIO paspaboTKy, KoTOpaa AaeT Ham Bee yayumaroueecs apo cucrembr Linux. Npeaucnosne Y ncex mporpammucros ects chos rpyna sanuceli M HepHoBHkos. Onn cobupator cobcr BelHEIe MIpHMepbI TEKCTOB NporpaMM, HaKoMMBLIHECA 3a BpeMA TepoHsecKUX Nlorpyxe- Hui 8 MHorouNCAeHMEe pykoBOCTBA uM 2oGbITHe ua ceTH Usenet, 8 KoTopolt nopori axe mypaKn Goarca Gayxnare. (Ipyraa TOuka SpeHHA COCTOHT B-TOM, 470 ¥ BCeX Aypa- kos cpoGomHbuit gocryr k Usenet, oH Henombayior ee GesocraHoBouHo.) Tlosromy s10- BOMEHO CTPAHHO, WTO Tak MAO KHMT BLINYyHFeHO B onOGHOM cTwIe. B uHTepakTHnHoM MHDe CYLIECTBYET MHOMKECTBO KOPOTKHX AOKYMEHTOR, KaCAIOUIHXCA KORKPETHEIX MpO- GaeM NporpaMMuposanna H aAMHHCTpApoBaHMA no cyulectay. B pamKax npoekra no cosaHHFO MOKyMeHTaunu Linux néinyuleHO MHOXKECTBO NOKYMEHTOR, TOCBAEHHLIX caMbIM pasHbim Team, Manas c ycTaHoBKn OC Linux a Windows ka oftHoli MaumMHe H JaKautMBad HancaHiem Bameli BHpTyaNbHOl MamMHeI Java aa Linux. Ha camo seste, sarnanute Ha Web-caiit Linux Documentation Project (npoexr yokymeittayun Linux) 10 aupecy hetp://www.tldp.org. - C apyrof croponsi, KHWKHEIT MAP KakeTCA COCTOALIHM B OCHOBHOM 13 TlopOOHBIX H CAMBIX IONHBIX HaY4HEIX TOMOB, YATAT KOTOPIE y BAC HeT BpeMeHH, WIM KHAE /VIa HO- BHYKOB, KOTOpbIe BbI MOKyMaeTe B UTyTKY Lpy36aM. EcTb oweHb HeMHOrO KHUP, KOTOpbic TIITAIOTCA PACCMOTPETs OCHOBEI UeMOTO pATa MoresHbIX NpoSuem. Tpeanaraemaa KHH- ra — ofa H3 RHX, 9To WaSop pacianbpoxanHBM (HonpoSyiire nposects 4ro-HHGYsIp, HammMcaHHoe NporpaMMucToM OT PyKH), CTpedakTHpopanHbix H COGpaHHBIX B OTHYCCKM onpapaHHylo CIpyKTYpy 3aMeTOK 4 ¥epHOBHKOB NporpaMMucTos. Jaanoe wyanne KATH Gsuio ttpoBepeHo H HcMpaBeHo B COOTBeTeTBHH ¢ CoBpEMeHHEIM yponuiem paspa6orox s OC Linux. Anan Koxe (Alan Cox) BBepenne Pagbl 1peAIOAKKTh BAM NerKoe B HCMOMbIOBAHHH PYKOBONCTBO NO paspaGoTKe MporpaMM aga Linux u apyrax UNIX-nogo6nbix onepalMontbix cucTem. B oT0ii KRHre MbI CTPeMHMCa JaTb BAM NpenCTaBNeHHe o pasHooOpasneix MoHATHAX, BaXKHBIX JW18 paspaborunka, NpuMensiouiero cucTemy Linux, Tak Cka3aTb, OCHOBbI. Ci0- Bo "OCHOBBI” CKOpee OTHOCHTCA kK €€ COMEPAHMOMY, HEM K YPOBHIO TOYFOTOBKH HHTATe- aa. Mbt noctpomnu KHury Tak YTOOKI, HecMoTpa Ha yoke npMoOperesuili Bamn onbiT, sbi y3HanH Goble 0 TOM, YTO MOxeT MipemtoxHTs Linux. MporpaMMupoeaune B OC Linux — o6umpnasa oGnacrs, u MbI cTapaemca npeacrasurs noctaTounO cBeneHHii, KACQONGUXCA pAXIHUHBIX TEM, UTOObI AAT BAM NPOMHEIe "OCHOBLI" AIX YeBOCHHA KaxK- Aoi W3 HHX, {na Koro 9Ta KHura? Ecn Bit nporpaMmucr, crpemamnutica nosbiouts kBaluHKanmo 3a cer dyHKUMOHAAL- hbIxX BOaMOxHOCTelt, npewlaraeMBIx paspadorankam Linux (a1 UNIX), yaemn Somt- Je BHHMaHKA NporpaMMMpoBaHHiO MW pacuMpHTh npumedcHne BaHx MpHTOKeHUM B cucreme Linux, ppt BbiSpann uysxnyio Knury. Tonsrupie oOpacneHua W npakTHueckuit Ha OCHOBE NOWAPOBEIX NPOBEPOK MOAXOA MOMOXKET BAM GEICTPO MORBICHTE Npodeccuo- HaNbHbii ypOBeHD H OCBOHTh BCE KIIOUERLIE METOALA. Mbt rionaraem, 4ro y Bac eT HeKoTOpsIit ONBIT IporpaNMupoRaHHa Ha asbiKax C u/HTH C++ 8 OC Windows uau KaKoii-nu6yas npyroif onepauornoi cucteme, Ho MBI crapa- JIMCh COXPAHHTh NPOCTOTY NpUBeeHHEIX B KHHe NPHMepOB, YTOObI WIA 4X TIORHMAHHA He TpeOopasioc CIHIKOM BEICOKOH KBaNM>UKAUMA B MporpaMmupoBanHH Ha C. Bee ABHbIe ConOcTaRNeKYA MeTOAOB NporpaMMHposanus B Linux c mpdemamMH mporpammu- poBaHiia Ha sabikax C/C++ oTMe4eHDI B TeKCTe KHATH, FIPHMEYAHKE OcoGce npumewaHne ana Tex, kro Bnepable sHaxommTca c OC Linux. Ota KHuTa He 06 ycraHoske Hactpoiie Linux. Ecnn @bi XoTuTe ysHaTb Gonbule 0S 2aMMHncTpmposanun ‘cucTeMbl Linux, BOSMOMKHO Bbi 3aXOTHTE-TOSHAKOMMTEGA C ACNOAMMTENHbIMH: Kram, Tlockonsky KHHTa saqyMaHa Kak YYeOHHK, SHaKOMAILMi C paxTHuHBIMH cpezeTBaMH H HaGopaMn dyaKuni/6u6mH0TeK, JocTyTIbIX Bam B GomuHHeree cueTeM Linux, a TaKKe YaOOREIH cripaBO4HHK, K KOTOpoMy BbI MOxKeTe OOpaillaTLca BPeMA OT BPemMeHH, OHA OT- muuaeTes YeTKOH H MOHATHOH dopMoli H3IO-KCHHA, HCYepNbIBAIOUHMH TOACHEHHAMH TOMpoOHEIMH TpHMepamn. 8 Bsegenne UYemy nocpaujena KHura? Y KHIM ecb pay 3aga4, Mepe4HcseHHbIX Aanee. © Haysnrs upumeniermio cranaaprabix OHOanoTeK sabia C’B OC Linux w apyr#x cpesicTs, OnMeanHerx B pasHbIx craHaprax Linux # UNIX. OF Moxasare, kak neronssonath GonbumMneTuo crantaprabix cpenere paspaborxa Linux. © Bars Kparksii 0630p criocoGoe xpanenna aanHDIx non yhpakaeHnen Linux ¢ no Moutbio CYBJI DBM 1 MySQL. G Toxasarp, kak cosaapars rpabuueckne mrrepibelice: nosb20zaTens na Gase rpabwye- ckoit cucremer X Window System, Msi Bocnomayemca 6ubanorexamn GTK (ocvopbr rpaiutieckoii cpeast GNOME) v Qt (octioapi rpaditieckoti cpenbi KDE). O Moanepxath nac W fare nav mpakrHueckHe HaRbikH paspaork coScrReHHBIX pe- AuIbHBIX NPAOKEHHH. B xoge o6cyxkAeHHs STAX TEM MbI 3HaKOMVM Bac c TeopHeli MporpaMMMpoBaHHA HK 3aTeM WUIOCTPHPyeM ee COOTBEICTAYIOMIMMH NPHMepAMA A TOHATHBIMH NloscHENMAMA. TakHM 6pasom, BEI CMOXKETe GbICTPO OcsOATS TEMY H NOTOM MPH HEOGXOAHMOCTH RepRYTECA K Heli, sTOObI OCBEAHTE Be cyMECTAeHHBIE ee CocTARNAONHE. TloMHMo MaeHBKHX TIpHMepon, paapaoraHHbix B OCHOBHOM AN HAuHOCTpANHH paGorsl Paula @yHKLHiL HIM HeKOTOpHIx aeMeHTOB Teopun 8 jclicTAUH, B KHMTe paccmaTpuBacT- ca Gombulo npuMep: paspaSorka npoctoro npHsosKenHA Asia paSorer c Gas0%i saNILIX, Xpahaue HANOpMaLlHHO O KOsIMEKUHH ayNMOKOMMAKT-nMcKos. Ilo Mepe HaxonsleHHa BallMx 3HaHuit BbI cMoxKeTe paspaGaTbmaTe, nepeslesLBaTs H pacliMpstTb ApoeKT B CoOT- BETETBKH CO CBOMMH 2KeAEHAME, HecMOTp Ha CKazaHHOe, NPLTOKEHHIO ana paBors © KOMMAKT-JMckaMH He OTBONMTCA TaBHAR PORb B TNaBAX KHHTH, H Bb] MoxeTe Nporyc- THTb NOCBALICHHBIC EMY CTPAHMUbI, HO HaM KaKETCH, YO OHO mpeyiaraer noaesHinie, Gonee cnoxHble MpAMeps! NpuMeHeHua COcyxRAeMBIX HaMU MeTONOB. OHO ‘TaOKE To S8ONKCT HAMAYULMM OGpaI0M MpOWMOCTpHpoRATL BCE Gonee cAOXITbIe TEMBI MO Mepe Hx pacemorpenus. Hae nepsce oOcyaenHe ZaNnOro TIPHNOKEHHA TORBATOR B KOHLE e1a¢ot 2 ¥ TlOK@KeT, KAK OpranHBoBaH CueHapHi KOMaHAHOM COoNCUKU QUeHS BomBIOLO oSbeMa, Kak KOMaHHad OGos0UKa OOpaSaTbiBacT BOA NOABIORATENA H Kak OHA MOxET chopMuponats Memo, XpaHuTh HW HCKATL JLaHbbIe. Tlocne moetoperia OcHOBHLIX NpaBHsL KOMMMAALHH TporpaMM, KOMMOHOSKM Ux ¢ OHO TWoTeKaMM 1 JOCTyNa K MHTepakTHBHBIM pyKOBOACTBAM BbI MpOHVKHHTe Ha BpeMa B KO- ManjjHbIe OGosIOUKH. B3aTeM BbL TepeligeTe K MporpaMmupoBanitio Ha asbiKe C, 3/1ecb Mb obcyaum padory ¢ daliname, nonyaenne zanHBIx u9 OKpYrKeHNa’ OC Linux, oSpa6orey FOpMMHaNbHOro BuO H BbIBOAA H ABsMOTeKY curses (rloaRoraIONLyIO sere OGpaGarbi- Baro Hirepaxtneubili Boz H RbIROA), HocAe >TOFO BLi GyaeTe FoTOBLI BIATECA 3a HOBYIO PeANMIALHIO NpHIOKeHHs Ata paSoTE! ¢ KOMMAKT-AuCKAMH Ha a3bIKe C. Mpoekr npwt0- 2KCHAA OCTAHETCA NPOKHHM, HO B NporpamMHOM Kose Gyjlet HcHONDIOBaNAa SuBAMOTeKA curses ana cos;taiins akpasioro nombsoparesLcKoro MATepbelica. Tlocne 9roro MbI OOcyaMM yrpakieHve JaHHbIMH, 3HaKOMcTBO ¢ GHORHOTEeKOH Ga3bI aanieix dbm, K KOTOpOH Mb! OSpaTHMcs B HECKONDKHAX TlociteMyIoUHX raBax,— nocTa- Basgenue 9 TOHHOC OCHOBAHME JIA HepeenkH NpHTOAReHHA, HO Ha STOT pas BMECTe ¢ NPOCKTOM. B cneayrouielt rnane paccmarpymaetos xpaHeHHe AaHHBIX 8 penstWMOHHOH Gaze AAHHBEX cpectsamu CYPBJL MySQL w'noke Mbt Take MOBTOPHO TIpHMeHUM STH MeTOgEI xpa- HONMA JaHBEIX, HOSTOMY BB! CMOIKETE CpaBHHTS pAsHble CHOCOODI YNpAaBNeHHA NAHHbIMH. PasMep HOBEIX BepCHii IIpHNOKeHHS TaKOB, YTO HAM Aajee NpHALTCA HME eNO © Ta HMM lIpakTH¥eckHMH 3ala4aMu, Kak OTIAMKA, KOHTPOM UcxOHOFO TeKCTa MpOrpaMMbl, pacnipocTpaHeHue Mporpammuoro OGecrievenHa u make-daiipl. Bpi Taioke yatiaere, Kak MOFYT BsAHMONeHCTRORATS pasHble Mpotteccet & OC Linux w Kak nporpaMMit & Linux MOryT MpHMCHSTS COKeTEI JUL NOATeDRKH ceressIx coedMHenHit pastiix maui va Gade npotoKonos TCP/IP, sxmovan npoSseMst, kacaioueca cpagH MAaLIHH ¢ NpoueccopaMH pasHoii apxHTeKxtypsi. Tlocae wsnoxKeH¥a ocHos nporpammuposanis B Linux MBI oOcy3kAaeM coananHe npo- TpaMM 6 rpadw4cckoM pexkume, OTOMY HocBAINeHbI LBe PlaBbl, B KOTOpbIx cHaYalla pac- CMATpHBACTC# KOMILIEKT HHeTPYMeHTaABIbIX cpencrs GTK+, nedkalunit B ocHoBe Mpa- cbusecko’t cpeas! GNOME, a 3avem Kommnert Qt, aexautnii B ocHose rpadueckoit cpent KDE. BakaHUHBaeM MBI KpaTKHM paccMotpeHHem craHmapros, Aenaromnx cucremst Linux pas- HBIX MOCTABLIMKOB HACTONEKO HOZOGHBIMH, YO Mbl MOXKEM sJIEPKO MepexoRHTs H3 OAHOH CHCTeMBI 8 /APYTYIO MH TIHcaTs NporpaMMBI, KOTOpsle Oysyr paborars & pasHbIxX AACTPH- 6yrapax Linux. i Kak spt goragbipaetech, B KHHTe ecTs H MHOLe Apyroe, HO Mbl Hafleemes, TO Stor xparinii 0630p fact Bam jloctarourtoe hpenicrasnenve 6 MaTepuane, KOTOpsiii Mii OGey- oxnaeM. i UTo Bam NoTpebyetTcn Ana Mcnonb3oBaHua KH? B sro Kuvire MoI npunuem BaM BKyc K MporpamMEponanao 6 Linux. Jina Toro robs1 HOBICUB MAKCHMYM NOJBAM, HYPKHO B MpOLeCce HTeHHA BEIOTHATE TIpHMepbl. OHH cary- okaT XopoleHi Npaxtuveckok $2320 u HaRepHaKka BOXHOBST Bac Ha CO3atine CoGUTREH- WOIx TporpamM, Moi Hayleemes, wro nul GysleTe YHTaTS STY KHUTY H OMHOBpEMeHKO SKC- TlepHMeHTHpoBaTt B ycranoBneHHolt y pac cucTeme Linux. Cymecrayror paprasrit Linux sid campix pa3aeix cHeTem. Axarrupyemocrs Linux ta- KOBa, STO NPeANPHHMAUBEIe MOTH 3acTaBiimMOT ee padoTaTs 8 TOM WI MHOM Bre Ha moGom oGopysuoBatuu, HMEIOUIEM mpoueccop! [IpuMeppi BKMOYaIOT cHCTeMbI Ha Gaze nipoueccopos Alpha, ARM, IBM Cell, Itanium, PA-RISC, PowerPC, SPARC, SuperH LIT 68k, a TaKoKe na Gase pasimunsrx hpeueccopos Knacca x86 c 32-u 64-paspannsimit BepcuamH. Mat Tecan sty KHUTY W paspabaTHBanH NpHMepsl & ABYX cHeTeMax Linux c pasHelwH CHEUMHKAUHAMH, OSTOMY Mbl yeepertel, 47O eciH y BAC ecTs paGoraloulaa cHcTeMa Linux, Ber CMoxeTe HaiiTH XOpowee mpHMenenue oyoik KHuTe. Bomee toro, moKa NpoXxo- AMAO TEXHAYECKOE petlensHpowaHHe KH, Mbi Mpopepwiih porpaMMHbIi KOA B pyrHx Bepcnax Linux. 10 Baenexne PaGoraa wan KHHTOH, MBI CHauana TuIABHLIM 06pa30M Heromb30BaTH cHCTeMbr Ha 6a3e mpoueccopos x86, xoTs Mano TO 43 ONHcaHHOrO B KHHTe XapakTepHo ToMbKO IH x86. Hecmortpa 1a To, "To MoxHO ycneumHo samycKare Linux Ha PC 486 ¢ 8 Moar RAM, sia yeneumol paGors cospemenuoro aMerpH6yrapa Linux H pbinonienit npHepoB us 3TOl KHMIM MbI CoBeTyeM BbIOpars COBPEMCHHYIO BEPCHIO OAHOrO H3 HanGostee foNy- sapribix ucTpHOyTuRoR Linux, nanpumep Fedora,-openSUSE wit Ubuntu, 1 nporepyre HX annapaTHble pekomeHaulHH. 5 Yro kacaeTea TpeGosaunit K nporpaMMHomy OGecneHeHHIo, MbI Tloslaraem, 4TO BEI HC- NOM3yeTe COBPeMeHHy1O BEpCHio [IpeANOUHTACMOrO BaMM AMCTpHOyTHBa Linux 4, YTO- Obi TIOMIEPKHBATH CHCTEMY Ha COBPEMCHKOM YPOBNe HW METS CaMbIe CBexCHe HcMpaBite- Tika HaiieHHorx OMMGOK, NpuMenaere TeKyuIMl KaGop OOHOBMENHH, KOTOpsIC GOAL cfeo NOCTABUIMKOB AeNAOT JOCTYMAbIMH KHTepakTHBHO B BAe aBroMATHYeCKUX oStosnenni. Linux 1 KOMIVIeKT MHCTPyMeHTabHEIx cpencTs mpoekta GNU ubiiycka- jorea Ha ycosuax GNU General Public License (GPL) (O6meaocrynvo% amueran mpoekra GNU). BonsurmHeTso apyrHx KeMMOHeHTOR THIMUHOF ANCTpHOyTHBAa Linux ceauiaiores 2750 Ha GPL, nH60 Ha oAHy #3 MMOKeCTRa ApyrEX jMUeHBHI Open Source (orkpeiTsii HH CBoGoAKo pacnpoctpanseMbIit NporpaMMHBIli KOA), H 9TO O3HA4aeT, YTO. y HAX ECTE ONpeveneHhble XapakrepucTHKH, O/H H3 KOTOpEIX — cBoboma. Y HHX BCerma Crh HCXORHBI NporpaMMHsIt KOA, H HAKTO He MOxeT OTHATS ITY cROGony. JonomHH- ‘TeabHyio uN@opmaunio o GPL cm. na Web-calire http://www.gnu.org/licenses/, a onpe- menenne Open Source u paswbie npuMensemble nucKaHH— na Web-calire http:// www.opensource.org. B ciyyae GNU/Linux y Bac Bceria SyMeT BO3MOKHOCTS TEXHH- weckoi nomepycKH M1G0 GjlaroyapA caMocToRTeETBHOM paGoTe c HCXONHBIM MporpaMM= ‘8bIM KOAOM, 51460 3a CHeT HaliMa CropOHHero cneuManHcta WH OGpaueHHs K OAKOMY 13 HOCTABINHKOB, pes Lara;oulHx, TIaTHY!O TEXHHNECKYIO NOsUIEpAKKY. Ucxopublii nporpamMibiii Kon, Tha paGorut ¢ npumepann kHHTH mozHO BRECK NporpaMMHDIit KOs, BpYHHY!O HH ROC NosRoRaTAce conpoBOAMTeNbHIMH cpainaMM c HCKOAHEIM TexcTom MpuMepos. Becs AporpaMMubiit KOs, NPHMeHseMbI R KAUTe, MoxHO HaitTH Wa Web-caitre http:// www.wrox.com. OTKpbIB riapiy:0 crpaHuuy caltra, npocto HaiiyuTe 3arotoBoK KHUTH (aH6o ¢ nomousio noza Search (Tlovck), 160 ucriomuaya oH 43 CHMCKOB 34rOs10BKOB) W Ha CTpaHAue ¢ OMHCAHHEM KHMTH UeNKHHTe KHONKOH MoiuIH ccbiney Download Code Ana Toro, #ToBbi OMy4HTS Bech NPOTPAMMHTi KOA NpuMepos. IIPUMEVAHHE Tockonbry:y MHOrMx KHMr NOXOXxMe 98TONOBKM, Nerve Bcero HAMITH RYMHyIO KHMTY NO HOMePY ISBN (international Standard Book Number); ISBN sto kuurm (opHrndanbHor) — 976-( 470-14762-7. Tlocne sarpy3kit nporpammuoro Kona m3 Virtepriera npocro paciaxytire cro cpoeit mo- 6uMoa nporpaMMoli cxaTHs. But TaoKe Moxkete niepelirH Ha mannyro crpariMily 3arpy3- KM MporpaMMHoro Kona waflaTenbeTsa Wrox http:/Avww.wrox.com/dynamic/books /download.aspx, :yix Toro UTOOb NPOCMOTPETS Kon, K jAHHOM KHHPE H KO BCeEM OCTAILE- HEIM KHMTaM H3faTenboTBa. Baegenne 1 3ameuanne, Kacaioujeeca NporpamMMHOro Kofla npuMepoB Mb crapanuch npexcrasHrs mpuMepbl NporpaMM u dbparMeHTsl nporpaMMuoro Kova, HaWiy4iHM o6pasoM HIWIKOCTpHpytoulKe TeMbI H MOHATHA, OOcyKRaeMbIe B TeKcTe. JLT Toro WrOObl CACIaTh HOBYIO PYHKUHOHATLHYH BOSMOKHOCTS, KOTOpaR paccMaTpHBact- C8, MAKCHMANLHO TOUSTHOM, Met OMYCKAIIN OAHY-lIRe BOMbHOCTH B CTHNe NporpaMMH- popaHita. B octosHom MbI He Bera MpoBepstH pesynbTaTL, BOSBpaMaeMDIe KAXACH BbIsEIBAe- Mofi Ramm OyAKMeM, Ha cooTReTCTAHE aaeMuIM. B npoeccHOHa@IbHoM nporpaMM- HOM KOE JIT PeanbHBIX MpHIORERHI Mix Bcerna BLINOAIN OEI TAKy!O NPoBEPKY, H BI AOUKHEI BHEAPATD CTporHe MeTOnBI, KaCaTOULMECA OOpaborKa oMMMOoK. (B ease 3 pi oScyakdaem HeKOTopble chocoGnl O6HapyxkeHisa H OGpaboTKH OMTHOOK.) O6wefoctynHaa nuyeH3suA npoekta GNU- Vcxonupiii uporpaMMubiit Ko, KHMPH CaeaH AOCTYMHBIM Ha yonopHax O6mexoctynuolt adueH3HK npoexra GNU sepeuu 2 (GNU General Public License, version 2), onyénuxo- natnoit Ha Web-ctpanane http://www-gnu.org/licenses/old-licenses/gpl-2.0.html. Ipx- BENCHHOC jaslee TONOwKEHHE o paspelICHHH H Mpasax NpHMenseres KO BCeMy TIpOrpamM- HOMy KOnY DaHHOH KHKTH, This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option} any later version.» (970 nporpasma + cao6omHo pacnpocrpaumeme nporpamMioe OSecrieuenve; pM MoxeTe PACAPOCEPAHATE ee U/W HSMEHST Ha YCHOBKAX OOwenoCTYNHOH museisi GNU, * onyGriaKonaano# GoHZOM cBOSOmHOTS Mponpawetoro Odecrewenns; smbo Bepent 2 oToH UIMUeHSHA, 9KGO (no RalileMy yomorpeHim) smOolt Gonee CBexe% Bepcwit.) This program is distributed in the hope that it will be useful, but WITHOUD ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. (Sra mporpanea pacnbocmpaxnerca B pacuere Ha G6 nosesHOCTSs, HO Gea KAKHE—nK6O Tapaunidi, Zaxe Ges. nompasymenaeMow rapart TOBAPHOTO COCTOSMG [IPM TPOHAKE 1 AEVPORKOCTH INA MCTONLSOBAHMA B KOHKPETABX UEIAX. Bonee nomposuyy msgopwaumo ou, p OsmexcerymHOK mmeHSM npoerTa GNU.) You should have received a copy of the GNU General Public ticense along with this program; if not, write to the Free Software Foundation, Tnc., $9 Temple Place, Suite 330, Boston, MA 02111-1307 USA (Bu monm Gant nonyuMEs KonMD OSuenocrynMot mmyeHsi” GNU EMecre c 970% nporpaMmovt; ecri 9rere He npoMSOMC, enue B OoHR CBODOMKORG nporpamaiono SSectteueums no ampccy Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA) 12 Baegenne, Ctunesoe ocbopmnenne, NpuHAToe B KHMTe Jina Toro 4T06bI OMOUb BAM MaKCHMANBHO YCBOMT TeKCT H CHeAAT 3a TeM, TO npo- HCXOLMT, Mbl TIPHMEHWIH BO BCE KHATe pag cTHeBbIX OcbopmneHAi HW BbINeNCHHit TeKcra, TIPHMEYAHHE @parmerTe!, NoAOGHsIe AaKHOMy, ConepwKaT TpeGyIoWWyo SaNOMMHAHVIA KPTHMUeCKH BaxK- Hy}0 MacbopMaLiiio, KoTOpaR HenocpeACTBENHO OTHOCHTCR K OKPYKAHOIEMY TEKCTY, 2 TAKE COBETBI, NlOACKASKH, OCOBEHHOCTH H JaMetAHKMA, KaCAIOUIMeCA TeKyUjero OOCymAeHHAA. Kora Beogatea gasicuee nowimut, Mbt puigensiem 4x KypcHBom. CUMBONIBI, KOTOPHIC Bat Rowen BRecTH, BIACIAIOTCA XKHPHbIM MOHOIHPHHHEIM WpudToM, nemeHTEl uHTep- delica Bbigenexps nomyxHpHbim wpHprom., KoMGunauwn Kasi O6o3uauaiotcs cre- ayrouraM o6pasom: +, Tporpasnmnsii! kon TepMunanbrbie cearicbl MbI TIpHBOMAM TpewA pasiisimH cnocobama: 3 who root ttyl Sep 10 16:12 rick tty2 Sep 10 16:10 Bepxaaa crpoka ripuperentoro kona — 9TO KOMaHaHaa cTpOKa, a OCTANbHBIe CTpoKt oToOpaxatotca B OObINHOM cre. 3Hak $ — NparnaweHHe (ecnH ANA. BBOAA KOMAKABE ape6yeroa cynepnomzonaTens, npurnamleine O6o3HauaeTeA 3HaKOM 4); %KHPHBIM IpHCh- TOM MOMENAeTCH TEKCT, KOTOPHIH BLT AOIDKHBI BBECTH, 1 {14 BLINONHEHHA KOMAHABI CsTe- ayeT Haxars Knasumy (una ). Jio6oii nocnenyiouil rexct, Ha6pan- bili Tem xke ipECpTOM, HO Ges BbIZeTeHHA »HpHDIM, — oTO sEIBOA OBesayeHHOH %HP- Abim Wupudrom KomaHabl. B npHBeeHHOM TipHMepe Bb! BROAHTe KOMAHAY who H BADWTE €e BbIBOJ B ABYX CTPOKAX, PACNOSOAEHHBIX NOL HEH Tipororans: byaxunit w crpysrypst, onpemenentisie 8 cucteme Linux, npusonares 2«up- HbIM LIpH>rom, Kak MOKagaHo anes: finclude int printf (const char *format, ...); B nporpaMMHoM Kole HALLUX MpHMepoB CTpOKH © BBILeTeHHBIM GboHOM yKasbIBAIOT Ha Hopuiii paakubii Marepuas, HanpuMep, TaK: © FOREN HREM Maesbuan, i CooMBenGniyiaied: ROC GEL AAHT AER CCIM KOL BBIMIADHT Tak, Kak 10Ka3aHO dase (63 BbINeNeHHs DOHOM), OH MeHee BAKER: /* 3ror Kom 'yxe Borpeyanca, 4 OH asinnamen ma. */ Yacro, Kora nporpamMa co3daerca Ha MpOTwKEKHH MaBbl, TOsbKO NTO pOGaBAcHHEIA Kou nepsbilt pas npuzomutes 6e3 cboua. Hanpumep, Honas niporpamMa 6yzer BbirnageTs crenyloluHM o6pa30M, J* Tiporpassanst xo apraepa */ J* 3r0 cxpoxa sanepmenvan. */ Beegenne 13 Ecan no3xke B 3TOii riaBe MbI 100aBHM B Hee HOBbIe CTPOKH, Oa OyAeT BEITAIeT TAK: /* Tiporparamittt Kon npepa. */ 7 Hi nocaequee, npunatoe 8 KHHre cTHMeBOe OopMaAeHHe, O KOTOPOM culemyer YrOMA- HyTb, — Bce MpHMepbi nporpaMMuoro Koza HatMualoTea c 3aromoBKa "YnpaxHenne", KoTOpEt OMOraeT pazueHTh KON TAM, FE STO NOse3HO, BLULENHTS ero CocTaBHBIe Yac- TH H oka3aTb, kak pasByBaeTca npKoxKeHHe, Kora 970 BaKHO, MbI Nocie MporpamMm- HOPO Koja BiuTIONaeM passten "Kak 970 paSoTaet" sa MOACHEHHA OCHOBHBIX MeCT B TEK- cTe MporpaMMbl, KACaIOUIUXCA HaTOxKeHHO! Nepen HUM TeopaH, Mbt cuuTaeM, YTO 9TH sia nipHeMa noMoraioT pas6uTb HanGonee TPOMOSAKHe AMCTHHTH Ha sterko mepeBapH- BAeMbIe KYCOMKH. Own6kn Mbt nipwiOokHuIK MakCHMYM Ycumnii, UTOGbr H36ExKATb OUIHEOK B TeKCTe H mporpaMMHOM Kone. Ho HHKiO He HAeAneH, H OMIHOKH ecTs. EcnHt BbI Halinere OWHOKY B O”HO! H3 Ha- IHX KHHT, Mol GyAeM OYCHD Gnarosapubl, NOyHHB Bale COObWICHHe o Heit. Coo6ums 06 oWIHOKe, BbI, GsITe Moker, yOepexere Apyroro wuTateA OT MHOTOAcoBOTO paso4a~ POBAHHA HB TO 2Ke BPeMA HOMONKETC HAM, NpelocTasHB HHopMALNIO eme Gonee BoICO- koro ka4ecrBa, J[na novicka crpaHHnps ¢ OWMEKAMH, HaiieHHbIMA B STON KHHTe, nepefiagute Ha Web- calit http://www.wrox.com 4 HaliZuTe 3aronoBOK ¢ MoMoUbO Noms Search ([louck) vin OAHOTO H3 CHHCKOB saronoBKOB. Janee Ha CTPAHVUE C BEIXO/MKBIMH ZaHHbIMH KAMTH LUCIKHHTE KRONKOH MbIMIH comKy Errata (Ourn6Ks). Bor nonasere na crpanniy, oT0- SpaKaouryio Bce OUIHGKH, NpexCcTaBTeHHEle Ha paccMOTpeHHe H OMYOTHKOBAHHEIe pe- wakropaMH yamarenecrza Wrox. Ha Web-cTpannue www.wrox.com/mise-pages /booklis.shtml Moxkho HaiirH mosAbI chico KHHP, BIOTIONAIOLIHH CCbLTKH Ha OLTMOKH, HaienHDe 5 Kaxutolt KHUTe. . East Bb He o6HapyKWTH."cBOI" OWMEKY Ha crpanHue Errata (Oun6xn), neperianre na CTpaHHly www.wrox.com/contact/techsupport.shtml 4 3amonuute dopMy AWA OTNpaB- Ku.HaM HaiiqenHiolt Bamd ommGKH. Mor nporepHM, npucnanHylo HHopManiio w, coutHt corlacHMca c Hel, .omy6muKkyem cooOuleHHe ha CrpakHUe C ONHOKaMH, HalijeHHDIMy “B KHHTe, 1 HCNPABHM ee B NOCCAYIONNMX H3aHMAX KHMTH. Cait p2p.wrox.com. [ins o6Mewa MHeHWaMH c aBTopaMM HW TaKHMH 2Ke, Kak Bul, YATaTeTAMH NpHCoeAMHAT- ‘rec K opymam P2P (Programmer to Programmer) ua Web-cairre p2p.wrox.com. Do- pyMsl— 970 cHeTema Ha ocHope Web-texnosmorHu, mpeaHasHaveHHaa ana ornpapKu Baller COOBLICHHA, OTHOCAIeroca K KHHTAaM H3maTenBcTBa Wrox H POsCTBEHHbIM TeX~ HOUOTHAM, H OOMena MHEHKMH c LPyTHMH UHTATeTEMH H MONDSOBATENAMH STHX TEXHO- 14 Baenenue nornii. Dopymet npeanaraioT PyHKHIO MOATHCKH ANA OTMPABKH BAM TIO JueKTPOKHO! NouTe NO Mepe NOCTYTIeHHA HOBBIX COOBUIEHH, OTHOCAUIHXC! K BbIGpAaHHBIM BaMH Ht HHTepecyiouwlux Bac Temam. Ha 3THX cbopyMax MmpescTapieHb! aBTOpbl H pesakTOPb! Wrox # gpyrne cneumasneri, paGoTaroulve B O6nacTH HHCOpMallHOHHEIX TEXHOSIOTHH, Ha Web-caiire http://p2p.wrox.com ppi Haiiaere pan pasHeix PopyMon, KOTOpbIe OMO- TyT BaM He TOs5KO BO BpeMs UTEHHA KHHTH, HO WB Mpomecce paspadoTkH BaLUHX CobcT- ReHHBIX npANoxcHHi. [ia NpHcoeAMHeHHs K hopymam BBIMOsHHTE crenyfouuAe gelicT- BHA: I. Tlepefivre Ha Web-caitr p2p.wrox.com H UICNKHHTe KHONKOH MBIIIH CCBUIKY Register (3aperucrpuposarsca). 2, Mpourute yenonua NomBsopaHHs H UleMKHHTe MBILUBIO KHonky Agree (IIpansTs). 3. Brequre HeoOxogumyto /uia npHcocaKHEHHs K bopyMy HAdopMaumio 1 sO6yIO He- OGsgaTerbHYIO HACOPMaLIMO, KOTOPyIO XOTHTE MpeAOCTABHTE, H LeIKHHTE MBILIBIO kuonky Submit (Otnpasrts). 4. Bei nosyyuTe no aneKTpoHHo! mouTe cooSineHHe CO CREAeHHAMH, OMHCBIBAIOUIHMH, Kak MPoBepHTs Bauly YuCTHY!O ANHCb H JABEPLINTS NpOLece NPHCCEAMHEHHA K o-, pymy. FIPHMEYAHYE YuTaTe cooBuleHne Ha cbopymax BbI cMoxeTe H Gea pemMcrpayan 8 P2P, Ho AnA Toro Wro- 6bi OTNPaBnaATe COBCTBEKHDIE COOSWYeHNA, NPAAETCA JaperycTpUpoBATECA. Hocae npucoeauHenus x PopyMy BbI MoxKeTe NocaLTaTs HOBBIE COOBILEKKA H OTBEMATS Ha COOOWIeHHA, MOCTaHHbIe APYTHMH Nonb3oBaTenaMH. UnTaTb COOSUIEHHA MOxKHO 6y- Ret B m0G0e BpeMa, Haxonace's Web-npocrpancrse. Eon pst XOTHTe nomyyaTE 0 SIEXTPOHHOH MOYTE HOBbIe COOOINEHHA, NOABIALOMMKECA Ha KOHKPeTHOM (bopyMe, WCIK- HHTe MBILIBIO MHKTOrpaMMy Subscribe to this Forum (Tlognucarsca na stor ¢opym), PacnonOKeHHYIO PAOM c HMeHeM bopyMa B crmucke popymon. Alia noayyenus ZONONHHTeNbHO! HHpopMalHW O MpaBwiax HcMOb3OBAaHHA CHCTeMbL Wrox P2P’ xenpemenno npowrure P2P FAQ (dcTo 3ayanaemsie BOnpocst) H MonyaHTe orbersi 0 paSore nporpaMMuoro oGeoncueHA opyMOB H OTReTHI 1a OOULHe BONPoCKI, xacaroummeca P2P % kHHr H3MaTenbCTBa Wrox. Jlia YTeHMa 3THX BOMPOCOB HK OTBETOB IeAKHHTE MuIEBIO coBLIKY FAQ ia s1060% crpanuie P2P. Npuctynas k pa6ote B stoi rave bl y3sHaete, ¥ro Takoe OC Linux u Kak OHA CBA3aHa CO CBOHM Mpoodpa- 30m — OC UNIX, no3HakomHTeck ¢ YHKIHAMH H cpencTRaMH, mpeOCTaBAseMbIMH cpentoti paspa6orkn nporpam™ 8 OC Linux, H HaKWUTe 4 BbIIOTHHTe BOF TepBy!o nporpammy. TonyTHo BbI NOmyyHTe TIpeAcTaBeEHnHe O: = i O UNIX, Linux » npoexre GNU; O nporpammax 1 aabiKax nporpammuposanua's OC Linux; GC} cnocofax norcKa pecypcos paspaborkH; ~ CO ctaruyeckHx H CoBMecTHO HcTIOmB3yemumx Gu6mHOTeKAX; 0 reoperuuecxux ocHopax OC UNIX. Bsegenne B UNIX, Linux u npoext GNU B nocneaune rontt OC Linux crasia 3amernvim aBnennem. H aKs He npoxosHT 6es Toro ws KHOrO ynomuuanna Linux B sneKTpOHHEIX cpencraax MaccoBoii undopmanynm. Mbt TOTePANH CHET NPHNOXKeHHAM, KOTOpHie Cras LOcTynHbr BOC Linux H BHEApHBLIHM ee OpraHwsaiHaM, BINUOS@X HCKOTOpbIe MMHUCTepcTBa HM opoyicKHe aAMHAKCTpAUAH. Ocnosiute nocraswakH KoMMbIorepHoro oSopyaoBaHns, Take Kak Kopnopaunn IBM 4 Dell, nongepxupaiot OC Linux, a kpynvchusme paspaGorsuKy nporpammuore oGecne- ueHHs, Hanpumep KoMnaNua Oracle, oBecreunBaior BbinosueHe CBOHX nporpamm BOC Linux. Linux crana mlo-#acToauemy KO#KYpeHTocnOcoBuol onepauHoHHol cHcTeMOH, oco6eHHO Ha CepBepHOM pblHKe. Cnous yenexom olla oG#gaHa cucTeMaM I MpHTOKeHuam — npemuiecrsennuKam: OC UNIX 1 nporpammnomwy o6ecnevexmo GNU. B stom pasntene pacemarpupacres, Kak TloaBunack OC Linux 4 kakopbl ec KOpHH.,

You might also like