1 00:00:00,000 --> 00:00:05,330 2 00:00:05,330 --> 00:00:07,870 >> Hizlaria: Orain arte, litekeena da Zure programak gehienak 3 00:00:07,870 --> 00:00:10,170 dute pixka bat iragankorrak dira. 4 00:00:10,170 --> 00:00:13,310 Mario edo Greedy bezalako programa bat exekutatu. 5 00:00:13,310 --> 00:00:17,350 Zerbait egiten du, agian eskatuko Informazio batzuk erabiltzaileari, 6 00:00:17,350 --> 00:00:20,400 irteera batzuk inprima pantailara, baina, ondoren, zure programa da denean baino, 7 00:00:20,400 --> 00:00:23,252 ez da benetan frogak ez dago inoiz lehenik eta behin exekutatu zuten. 8 00:00:23,252 --> 00:00:25,960 Esan nahi dut, ziur, utzi izana ireki terminal leihoa da, 9 00:00:25,960 --> 00:00:29,770 baina zure pantaila garbitzeko baduzu, ez da benetan frogak ez da existitzen. 10 00:00:29,770 --> 00:00:33,720 Ez dugu gordetzeko bitarteko dute iraunkorrak informazioa, informazio 11 00:00:33,720 --> 00:00:36,890 gure ondoren badago programa gelditu exekutatzen, 12 00:00:36,890 --> 00:00:39,241 edo ez dugun puntu honetan. 13 00:00:39,241 --> 00:00:41,490 Zorionez, nahiz eta, c egiten ematen digu gaitasuna 14 00:00:41,490 --> 00:00:44,220 hori egin ahal izateko martxan jarriz Zerbait izeneko 15 00:00:44,220 --> 00:00:48,330 fitxategi bat, egitura bat funtsean hori bikoiztu egingo zenuke fitxategi bat adierazten 16 00:00:48,330 --> 00:00:53,826 klik zure ordenagailuan, bazaude erabiltzaileari ingurune grafikoa erabil. 17 00:00:53,826 --> 00:00:55,700 Oro har, lan egiten denean c batera, benetan gara 18 00:00:55,700 --> 00:00:59,965 izango dira lanean joan erakusleak fitxategia files-- den stars-- 19 00:00:59,965 --> 00:01:02,090 Pixka bat izan ezik denean pare bat buruz hitz egiten dugu 20 00:01:02,090 --> 00:01:04,560 funtzio duten fitxategia erakusleak lan. 21 00:01:04,560 --> 00:01:08,990 Zuk ez duzu benetan zulatu dute gehiegi sakon erakusleak ulermena sartu 22 00:01:08,990 --> 00:01:09,730 beraiek. 23 00:01:09,730 --> 00:01:12,870 Ez da, teeny pixka Bertan izango haiei buruz hitz egiten dugunean, 24 00:01:12,870 --> 00:01:18,090 baina, oro har, artxibatzen erakusleak eta erakusleak, elkarri lotuta, berriz, 25 00:01:18,090 --> 00:01:20,290 ez dira gauza bera. 26 00:01:20,290 --> 00:01:22,440 >> Orain zer ari naiz Datu iraunkorrak diot? 27 00:01:22,440 --> 00:01:23,650 Zer da datu-iraunkorrak? 28 00:01:23,650 --> 00:01:25,232 Zergatik arduratzen gara? 29 00:01:25,232 --> 00:01:27,190 Esan, adibidez, programa bat exekutatzen ari zara 30 00:01:27,190 --> 00:01:29,850 edo berridatzi duzun bat programa hori joko bat da, 31 00:01:29,850 --> 00:01:32,960 eta segimendua nahi duzu erabiltzailearen Mugimendu guztiak 32 00:01:32,960 --> 00:01:36,620 beraz, zerbait oker dagoela, agian, bada, Jokoaren ondoren espedientea aztertu ahal izango duzu. 33 00:01:36,620 --> 00:01:39,970 Horixe esan nahi dugunean Datu iraunkorrak buruz hitz egiteko. 34 00:01:39,970 --> 00:01:43,930 >> Korrika ikastaro batean zure programa, fitxategi bat sortuko da. 35 00:01:43,930 --> 00:01:45,680 Eta zure programa denean gelditu exekutatzen, 36 00:01:45,680 --> 00:01:48,689 fitxategi hori oraindik zure sisteman lehendik. 37 00:01:48,689 --> 00:01:50,230 Eta hori begiratu ahal izango dugu eta aztertu. 38 00:01:50,230 --> 00:01:53,670 Eta beraz, programa hori ezarri litzateke Datu iraunkor batzuk sortu dute, 39 00:01:53,670 --> 00:01:57,390 Datu programaren ondoren existitzen ditu martxan amaitu. 40 00:01:57,390 --> 00:02:02,320 >> Orain lan egiten duten funtzio horiek guztiak fitxategiak sortu eta manipulatzeko 41 00:02:02,320 --> 00:02:04,940 hainbat modutan horiek io.h estandarra bizi, 42 00:02:04,940 --> 00:02:08,210 bertan Goiburu-fitxategi bat dela Litekeena duzun kiloko egon 43 00:02:08,210 --> 00:02:10,910 Nahiko goialdean barne Askoz zure programak 44 00:02:10,910 --> 00:02:14,130 bat zeudelako guretzat funtzio erabilgarria gehienetan, 45 00:02:14,130 --> 00:02:16,130 printf, hori ere uzten io.h. bizi da 46 00:02:16,130 --> 00:02:20,400 Beraz, ez duzu behar, besteak libra Bat-fitxategi gehiago, seguruenik 47 00:02:20,400 --> 00:02:23,540 ahal izateko fitxategia erakusleak lan. 48 00:02:23,540 --> 00:02:29,980 >> Orain fitxategia erakuslea single funtzio guztietan, edo fitxategi bakar dut behin / O, sarrera-irteera 49 00:02:29,980 --> 00:02:33,310 funtzioa, bat bezala onartzen bere parametro edo sarrera- 50 00:02:33,310 --> 00:02:35,822 fitxategia erakuslea izan ezik Bat, fopen, bertan 51 00:02:35,822 --> 00:02:38,280 da zer fitxategia lortzeko erabili duzu lehenik eta behin erakuslea. 52 00:02:38,280 --> 00:02:41,010 Baina nik ondoren ireki du artxibatzen eta fitxategia erakusleak lortuko duzu, 53 00:02:41,010 --> 00:02:43,510 ondoren, iragan ahal izanen gisa hainbat funtzioen argumentuak 54 00:02:43,510 --> 00:02:46,720 buruz hitz egin dugu gaur, baita beste asko 55 00:02:46,720 --> 00:02:48,520 beraz fitxategiak duzu lan egin ahal izango da. 56 00:02:48,520 --> 00:02:50,980 >> Beraz, ez da sei dira nahiko oinarrizko direnak komuna 57 00:02:50,980 --> 00:02:52,870 ari garela, gaur egun buruz hitz egiteko. 58 00:02:52,870 --> 00:02:57,160 fopen eta bere laguna Funtzio fclose, fgetc 59 00:02:57,160 --> 00:03:02,670 eta bere laguna funtzioa fputc, eta fread eta bere laguna funtzioa, 60 00:03:02,670 --> 00:03:03,820 fwrite. 61 00:03:03,820 --> 00:03:05,180 Hargatik egokian sartu. 62 00:03:05,180 --> 00:03:07,050 >> fopen-- zer egiten du? 63 00:03:07,050 --> 00:03:10,050 Beno, agiri bat ireki eta hura erakuslea fitxategi bat ematen dizu bertara, 64 00:03:10,050 --> 00:03:14,000 beraz, ondoren, erabili ahal izango dela erakuslea fitxategi argumentu bezala 65 00:03:14,000 --> 00:03:16,730 Beste fitxategi I / O funtzioak edozein. 66 00:03:16,730 --> 00:03:19,100 Garrantzitsuena to fopen gogoratzen 67 00:03:19,100 --> 00:03:24,222 dela ondoren ireki du artxibatzen edo den moduko bat dei egin hemen, 68 00:03:24,222 --> 00:03:26,930 ziurtatu egin gaitu behar da erakuslea duzula bueltatu 69 00:03:26,930 --> 00:03:28,320 Ez da berdina null. 70 00:03:28,320 --> 00:03:31,320 Ez duzu bideoa ikusi ditut bada erakusleak, hori ez du zentzurik. 71 00:03:31,320 --> 00:03:35,639 Baina saiatu baduzu eta erreferentzia kenduta a null erakuslea oroitzapen, 72 00:03:35,639 --> 00:03:38,180 Zure programa ziurrenik jasango segmentazio bat [INAUDIBLE]. 73 00:03:38,180 --> 00:03:40,540 To egin nahi dugu dugu legitimoa erakuslea itzuli bat lortu. 74 00:03:40,540 --> 00:03:43,665 Garai hartako gehiengo zabala izango dugu Ahaztuak zilegia erakuslea itzuli 75 00:03:43,665 --> 00:03:45,280 eta, ez da arazo bat izan. 76 00:03:45,280 --> 00:03:46,760 >> Beraz, nola ez dugu egin fopen dei bat? 77 00:03:46,760 --> 00:03:48,051 Nahiko askoz honen antza du. 78 00:03:48,051 --> 00:03:52,690 Fitxategia izar generic izateaz PTR ptr-- fitxategi izen erakuslea fopen 79 00:03:52,690 --> 00:03:57,300 eta pasa dugu bi gauza, fitxategi izen eta eragiketa bati ekiteko nahi dugu. 80 00:03:57,300 --> 00:04:01,690 Beraz, nahi duten bezala begiratzen dei bat egin behar dugu Halako fitxategia izar ptr 1 funtzioak fopen 81 00:04:01,690 --> 00:04:04,040 1fitxategia.txt. 82 00:04:04,040 --> 00:04:07,020 Eta eragiketa aukeratu dut r da. 83 00:04:07,020 --> 00:04:08,639 >> Beraz, zer uste duzu r hemen da? 84 00:04:08,639 --> 00:04:11,180 Zer dira gauza mota egin dugu fitxategiak egiteko gai izan daiteke? 85 00:04:11,180 --> 00:04:13,760 86 00:04:13,760 --> 00:04:17,500 Beraz r operazioa dela dugu aukeratu Artxibategi bat irakurri nahi dugu. 87 00:04:17,500 --> 00:04:20,260 Beraz genuke funtsean denean honen antzeko dei bat egin dugu 88 00:04:20,260 --> 00:04:25,440 geure buruari lortzean fitxategia erakuslea besteak beste, ondoren, izan dugu informazioa irakurri 89 00:04:25,440 --> 00:04:27,770 1fitxategia.txt from. 90 00:04:27,770 --> 00:04:34,190 >> Era berean, fitxategia 2.txt ireki ahal izan genuen Idazteko eta beraz, ezin dugu ptr2, 91 00:04:34,190 --> 00:04:38,210 dut hemen sortutako fitxategi erakuslea, Edozein funtzioa argumentu gisa duten 92 00:04:38,210 --> 00:04:40,080 Informazio idazten fitxategi batean gordetzen ditu. 93 00:04:40,080 --> 00:04:43,767 Eta idatziz antzekoa da, ez da aukera ere, erantsi bat. 94 00:04:43,767 --> 00:04:45,600 Arteko aldea idazten eta erantsi 95 00:04:45,600 --> 00:04:50,920 ari dira idatzi fitxategi bat aurkitu behar dela, Dei baten idazketarako fopen egiten baduzu 96 00:04:50,920 --> 00:04:54,761 eta fitxategia dagoeneko existitzen da, da, Fitxategi osoa gainidatzi egingo da. 97 00:04:54,761 --> 00:04:56,510 Honez martxan jarriko hasieran oso, 98 00:04:56,510 --> 00:04:58,820 informazio guztia ezabatzen hori da dagoeneko. 99 00:04:58,820 --> 00:05:02,210 >> Irekitzean bada erantsi berriz, egingo lerro amaierara joan da 100 00:05:02,210 --> 00:05:04,340 Dagoeneko testua bada edota informazioak, 101 00:05:04,340 --> 00:05:06,040 eta orduan hasiko da hortik idazten. 102 00:05:06,040 --> 00:05:08,570 Beraz, ez duzu galduko edozein aurretik egin duzun informazioa. 103 00:05:08,570 --> 00:05:12,110 Idatzi edo erantsi nahi duzun ala ez Sort egoeraren araberakoa da. 104 00:05:12,110 --> 00:05:16,840 Baina seguruenik ez duzu jakingo zer egin eskuineko eragiketa da Unea iritsita. 105 00:05:16,840 --> 00:05:18,020 Beraz, hori fopen da. 106 00:05:18,020 --> 00:05:18,930 >> Zer fclose buruz? 107 00:05:18,930 --> 00:05:21,600 Beno, nahiko besterik gabe, fclose besterik fitxategi erakuslea onartzen. 108 00:05:21,600 --> 00:05:24,000 Eta espero dezakezun bezala, fitxategi hori itxi egiten du. 109 00:05:24,000 --> 00:05:29,270 Eta behin fitxategi bat itxi dugu, ezin dugu Bat gehiago fitxategia I / O funtzioak betetzeko, 110 00:05:29,270 --> 00:05:31,420 irakurtzen edo, idatziz fitxategia horretan. 111 00:05:31,420 --> 00:05:36,444 Berriro ireki du daukagu denbora beste fitxategi ordenan 112 00:05:36,444 --> 00:05:38,610 lanean jarraitzeko I / O funtzioak erabiliz. 113 00:05:38,610 --> 00:05:41,520 Beraz fclose bitartekoak Bukatutakoan fitxategia honekin lanean. 114 00:05:41,520 --> 00:05:44,690 Eta gainditu beharko dugun guztia da erakuslea fitxategi baten izena. 115 00:05:44,690 --> 00:05:50,010 Beraz on pare bat diapositibak duela, dugu fopened fitxategia 1 dot irakurzaletasuna testua 116 00:05:50,010 --> 00:05:52,854 eta esleitutako dugun Fitxategi adierazlea ptr1 izateko. 117 00:05:52,854 --> 00:05:55,020 Orain erabaki dugu gaude egin fitxategia irakurtzean. 118 00:05:55,020 --> 00:05:56,561 Ez dugu behar du gehiago egin behar da. 119 00:05:56,561 --> 00:05:58,890 Besterik fclose ptr1 ahal dugu. 120 00:05:58,890 --> 00:06:01,950 Eta, era berean, ezin izan dugu fclose beste batzuk. 121 00:06:01,950 --> 00:06:02,450 Ados. 122 00:06:02,450 --> 00:06:03,700 Beraz, irekitzeko eta ixteko. 123 00:06:03,700 --> 00:06:05,780 Horiek dira bi oinarrizko eragiketak hasita. 124 00:06:05,780 --> 00:06:08,050 >> Orain benetan nahi dugu gauza interesgarri batzuk egin, 125 00:06:08,050 --> 00:06:11,940 eta lehenengo funtzioa duten zaitugu ikusi egingo dela egin dela fgetc-- 126 00:06:11,940 --> 00:06:14,110 artxibatzen pertsonaia bat lortzeko. 127 00:06:14,110 --> 00:06:17,350 Hori zer fgetc, oro har, itzultzea litzateke. 128 00:06:17,350 --> 00:06:20,190 Bere bizitzako helburua da, hurrengo pertsonaia irakurri, 129 00:06:20,190 --> 00:06:22,079 edo hori da, bada, zure oso fgetc lehen deialdian 130 00:06:22,079 --> 00:06:23,870 fitxategi jakin bat, Lehenengo pertsonaia. 131 00:06:23,870 --> 00:06:26,210 Baina gero, ondoren, Hurrengo bat lortuko duzu, 132 00:06:26,210 --> 00:06:31,500 Oso Hurrengo fitxategia horren izaera, gordetzen da eta pertsonaia aldagai batean. 133 00:06:31,500 --> 00:06:34,490 Hemen egin dugun bezala, char ch berdinen fgetc, 134 00:06:34,490 --> 00:06:36,389 erakuslea fitxategi baten izena pasatzen. 135 00:06:36,389 --> 00:06:38,180 Berriz ere, oso da Garrantzitsua hemen gogoratu 136 00:06:38,180 --> 00:06:41,430 ordena horretan izan Eragiketa honen arrakasta, 137 00:06:41,430 --> 00:06:45,690 the fitxategia erakuslea bera nion izan da irakurketarako ireki. 138 00:06:45,690 --> 00:06:50,589 Ezin dugu pertsonaia bat fitxategi batetik irakur erakuslea ireki genuen idazteko. 139 00:06:50,589 --> 00:06:52,630 Beraz, hori da bat fopen mugak, ezta? 140 00:06:52,630 --> 00:06:55,470 Mugatu behar dugu bakarra eszenikoen geure 141 00:06:55,470 --> 00:06:57,710 erakuslea fitxategi batekin eragiketa bat. 142 00:06:57,710 --> 00:07:00,220 Irakurri nahi badugu eta fitxategia beretik idatzi, 143 00:07:00,220 --> 00:07:03,840 open bi bereizi beharko genituzke fitxategia fitxategi bera erakusleak 144 00:07:03,840 --> 00:07:05,670 irakurketa bat, idazketarako bat. 145 00:07:05,670 --> 00:07:08,400 >> Beraz, berriro ere, arrazoi bakarra Ekarriko dut up now da 146 00:07:08,400 --> 00:07:11,920 ari gara dei bat egin nahi izanez gero delako fgetc, fitxategi erakuslea nion dagoela 147 00:07:11,920 --> 00:07:14,172 izan da irakurketarako ireki. 148 00:07:14,172 --> 00:07:15,880 Eta gero, nahiko besterik gabe, Guztiak egin behar dugu 149 00:07:15,880 --> 00:07:17,546 da fitxategi erakuslea izenean gainditu. 150 00:07:17,546 --> 00:07:21,060 Beraz char ch fgetc ptr1 berdin. 151 00:07:21,060 --> 00:07:23,200 >> Hori da gurekin lortzeko joan hurrengo character-- 152 00:07:23,200 --> 00:07:25,575 edo berriz ere, hau da lehenengoa bada denbora dei hau egin dugu, 153 00:07:25,575 --> 00:07:29,750 lehen character-- zeintzunahi agiria adierazi ptr1 arabera. 154 00:07:29,750 --> 00:07:32,210 Gogoratu zela fitxategia 1 dot testua. 155 00:07:32,210 --> 00:07:36,490 Duten lehen pertsonaia jasoko ditu eta gorde egingo dugu ch aldakorra ere. 156 00:07:36,490 --> 00:07:37,941 Nahiko erraza. 157 00:07:37,941 --> 00:07:40,190 Beraz, gu ere hiru begiratu zion funtzio eta dagoeneko dugu 158 00:07:40,190 --> 00:07:43,070 Zerbait nahiko garbia egin dezake. 159 00:07:43,070 --> 00:07:46,320 >> Beraz, gaitasun hori hartzen badugu pertsonaia bat lortzeko 160 00:07:46,320 --> 00:07:48,943 eta guk begizta it orain dugu karaktere eskuratu jarraitzeko 161 00:07:48,943 --> 00:07:51,390 fitxategi batetik gorako eta behin eta over-- orain dugu 162 00:07:51,390 --> 00:07:54,500 single guztietan irakur daiteke Fitxategi baten izaera. 163 00:07:54,500 --> 00:07:58,670 Eta pertsonaia bakoitzak inprimatzeko badugu dela irakurri dugu berehala ondoren, 164 00:07:58,670 --> 00:08:01,960 ditugu jada fitxategi bat irakurri eta bere edukiak inprimatutako pantailara. 165 00:08:01,960 --> 00:08:05,610 Eraginkortasunez ditugu kateatu fitxategi hori pantailan. 166 00:08:05,610 --> 00:08:09,670 Eta hori da egin Linux komando katu egiten du. 167 00:08:09,670 --> 00:08:13,250 >> Katu idazten baduzu fitxategia izenean, hura eduki osoa inprimatu egingo 168 00:08:13,250 --> 00:08:15,160 zure terminal-leiho batean fitxategi. 169 00:08:15,160 --> 00:08:19,010 Eta beraz, begizta txiki honetan hemen, Kode lerro hiru bakarrik, 170 00:08:19,010 --> 00:08:23,270 baina modu eraginkorrean bikoizten da Linux komando katua. 171 00:08:23,270 --> 00:08:25,210 Beraz, sintaxia hori bateragarria apur bat arraro begiratzen, 172 00:08:25,210 --> 00:08:26,670 baina hemen zer gertatzen ari da hemen. 173 00:08:26,670 --> 00:08:31,460 Ch berdinen fgetc bitartean, ptr ez da berdinak EOF-- den mokadu oso bat da, 174 00:08:31,460 --> 00:08:34,669 baina dezagun hautsi du behera, besterik gabe, beraz, sintaxia on argi da. 175 00:08:34,669 --> 00:08:37,169 Nik finkatu egin da espazio mesedetan, 176 00:08:37,169 --> 00:08:39,049 apur bat izan arren sintaktikoki delikatua. 177 00:08:39,049 --> 00:08:41,194 >> Beraz, eskuineko berde zati hau orain, zer egiten ari da? 178 00:08:41,194 --> 00:08:42,860 Beno, hori besterik gabe, gure fgetc deia da, ezta? 179 00:08:42,860 --> 00:08:44,530 Aurretik ikusi dugu. 180 00:08:44,530 --> 00:08:49,500 Honez bat lortzea fitxategia karaktere. 181 00:08:49,500 --> 00:08:53,220 Orduan alderatu dugu EOF aurka pertsonaia. 182 00:08:53,220 --> 00:08:57,470 EOF balio berezi hori da io.h estandarra, definitutako bertan 183 00:08:57,470 --> 00:08:59,390 fitxategia pertsonaia amaiera izango da. 184 00:08:59,390 --> 00:09:03,450 Beraz, funtsean, zer gertatuko dago begizta hau pertsonaia bat irakurriko du, 185 00:09:03,450 --> 00:09:07,445 konparatu EOF da, fitxategia pertsonaia amaiera. 186 00:09:07,445 --> 00:09:10,070 Ez badute datoz, beraz, ez daukagu lerro amaierara iritsi, 187 00:09:10,070 --> 00:09:11,490 Pertsonaia hori inprimatu egingo dugu. 188 00:09:11,490 --> 00:09:13,740 Ondoren, atzera egingo dugu aurrean Begizta berriz hasten. 189 00:09:13,740 --> 00:09:18,310 Pertsonaia bat lortuko dugu egiaztatu EOF aurka, inprimatu, eta abar 190 00:09:18,310 --> 00:09:21,094 eta abar, eta abar, begizta bidez, modu horretan 191 00:09:21,094 --> 00:09:22,760 Nik lerro amaierara iritsi arte. 192 00:09:22,760 --> 00:09:24,593 Eta gero, puntu horretan, inprimatutako egingo dugu 193 00:09:24,593 --> 00:09:26,210 Fitxategiaren eduki osoa out. 194 00:09:26,210 --> 00:09:29,450 Beraz, berriro ere, bakarrik ikusten dugu fopen, fclose, eta fgetc 195 00:09:29,450 --> 00:09:34,950 eta dagoeneko bikoiztu ahal izango dugu Linux terminal komando bat. 196 00:09:34,950 --> 00:09:38,850 >> Esan bezala hasieran I, fgetc eta fputc izan genuen, 197 00:09:38,850 --> 00:09:41,860 eta fputc laguna izan zen fgetc funtzioa. 198 00:09:41,860 --> 00:09:44,880 Eta, beraz, baliteke imajinatu bezala, idazketa baliokidea da. 199 00:09:44,880 --> 00:09:49,440 Bat idazteko aukera ematen digu fitxategi batean gordetzen karaktere bakar. 200 00:09:49,440 --> 00:09:53,290 >> Berriz ere, Oharra izateagatik, besterik zen bezala fgetc batera, fitxategia 201 00:09:53,290 --> 00:09:56,660 ari garela nion honetara idatzita egon idatziz edo erantsi ireki. 202 00:09:56,660 --> 00:10:00,820 Saiatzen gara eta bada erabili fputc fitxategi batean Nik dugun irakurketa ireki, 203 00:10:00,820 --> 00:10:02,760 Jasaten goaz Akats bat pixka bat. 204 00:10:02,760 --> 00:10:04,440 Baina deia nahiko erraza da. 205 00:10:04,440 --> 00:10:08,000 fputc kapital ptr2 A, guztiak hori egin egingo dela da 206 00:10:08,000 --> 00:10:12,040 hizkia idazteko joan A fitxategi 2 dot sartu 207 00:10:12,040 --> 00:10:14,760 testua, bertan zegoen izenean artxibatzen inauguratu zen eta esleitzen dugun 208 00:10:14,760 --> 00:10:17,280 erakuslea ptr2. 209 00:10:17,280 --> 00:10:20,430 Beraz, goazen bat idazteko joan capital A 2 dot testu fitxategian. 210 00:10:20,430 --> 00:10:24,592 Eta oihu egin idatzi dugu 3. puntuan dot artxibatzen 211 00:10:24,592 --> 00:10:27,330 testua, eta bertan adierazi ptr3 arabera. 212 00:10:27,330 --> 00:10:29,730 Beraz, berriro ere, nahiko erraza hemen. 213 00:10:29,730 --> 00:10:32,727 >> Baina orain beste gauza bat egin ahal izango dugu. 214 00:10:32,727 --> 00:10:34,560 Adibide hau daukagu besterik ez ginen pasa 215 00:10:34,560 --> 00:10:38,950 katua errepikatzeko gai izatea buruz Linux komando, hori bistaratzen bat 216 00:10:38,950 --> 00:10:40,500 pantailara. 217 00:10:40,500 --> 00:10:43,510 Beno, gaur egun gaitasuna dugula fitxategiak karaktereak irakurtzeko 218 00:10:43,510 --> 00:10:46,590 eta pertsonaiak idatzi fitxategiak, zergatik ez da aldaketa besterik ez dugu 219 00:10:46,590 --> 00:10:50,720 deitu, dei bati fputc printf. 220 00:10:50,720 --> 00:10:54,090 >> Eta orain bikoiztuta ditugun cp, Oso oinarrizko Linux komando bat 221 00:10:54,090 --> 00:10:59,100 buruz hitz egin dugu bide luzea dagoela Duela Linux bideo-komandoak. 222 00:10:59,100 --> 00:11:01,070 Eraginkortasunez dugu hementxe bikoiztuta. 223 00:11:01,070 --> 00:11:04,790 Pertsonaia bat irakurtzen ari gara eta gero ez gara beste fitxategi pertsonaia hori idatziz. 224 00:11:04,790 --> 00:11:07,660 Fitxategia batetik irakurtzea, idaztea beste, behin eta nahi 225 00:11:07,660 --> 00:11:11,350 eta berriz EOF hit arte. 226 00:11:11,350 --> 00:11:14,250 Nik amaieran lortu dugu fitxategian kopiatzen saiatzen ari gara. 227 00:11:14,250 --> 00:11:18,500 Eta hitz horiekin dugun guztia idatzi dute egingo pertsonaietako fitxategia behar dugu 228 00:11:18,500 --> 00:11:19,500 ari gara idazten duten. 229 00:11:19,500 --> 00:11:24,270 Beraz, hau cp, Linux kopia komandoa da. 230 00:11:24,270 --> 00:11:26,550 >> Oso urtearen hasieran Bideo honetan, Oharra izan nuen 231 00:11:26,550 --> 00:11:29,840 Hori bat hitz egiten genuen erakusleak buruz pixka. 232 00:11:29,840 --> 00:11:32,480 Hemen da zehazki non gaude erakusleak buruz hitz egingo 233 00:11:32,480 --> 00:11:34,800 Horrez gain erakusleak fitxategian. 234 00:11:34,800 --> 00:11:37,870 Beraz, funtzio hau motatako beldurgarria itxura. 235 00:11:37,870 --> 00:11:39,120 Honez hainbat parametro lortu. 236 00:11:39,120 --> 00:11:40,430 Ez da asko gertatzen da hemen da. 237 00:11:40,430 --> 00:11:42,760 Badira desberdin asko da Kolore eta testuak. 238 00:11:42,760 --> 00:11:47,100 Baina benetan, besterik ez da fgetc bertsioa orokorra 239 00:11:47,100 --> 00:11:50,110 Hori edozein lortzeko aukera ematen digu Informazio kopuru. 240 00:11:50,110 --> 00:11:53,560 Pixka bat eraginkorrak ez bagaude izan daiteke karaktere lortzean denbora batean, 241 00:11:53,560 --> 00:11:55,770 file bidez errepikatzean aldi berean pertsonaia bat. 242 00:11:55,770 --> 00:12:00,230 Ez al litzateke politagoa izan da iritsi 100 denbora bat edo 500 aldi berean? 243 00:12:00,230 --> 00:12:03,250 >> Beno, fread eta bere laguna funtzioa fwrite, buruz hitz egingo dugu 244 00:12:03,250 --> 00:12:05,490 bigarren bat, baimendu besterik ez da egin digu. 245 00:12:05,490 --> 00:12:08,480 Kopuru arbitrario bat irakurri ahal izango dugu fitxategi batetik informazio 246 00:12:08,480 --> 00:12:10,290 eta gordeko dugu, nonbait, aldi baterako. 247 00:12:10,290 --> 00:12:12,980 Horren ordez gai izatea besterik behar moldatzen da aldagai bakar batean, 248 00:12:12,980 --> 00:12:15,790 zitekeen array batean gorde behar dugu. 249 00:12:15,790 --> 00:12:19,980 Eta orain, lau pasako dugu argumentuak erakuslea fread-- den 250 00:12:19,980 --> 00:12:23,940 non gaude informazioa gordetzeko joan, 251 00:12:23,940 --> 00:12:29,180 nola informazio unitate bakoitzeko handiak izango dira, Informazio unitateak zenbat 252 00:12:29,180 --> 00:12:35,192 eskuratu nahi dugu, eta bertatik hau da, fitxategi horiek lortu nahi dugu. 253 00:12:35,192 --> 00:12:37,150 Ilustratu seguruenik onena Adibide bat hemen. 254 00:12:37,150 --> 00:12:41,640 Beraz, esan dezagun aitortzen dugu 10 zenbaki osoen array bat. 255 00:12:41,640 --> 00:12:45,080 Besterik ez dugu deklaratu pilatu arbitrarioki int ARR 10. 256 00:12:45,080 --> 00:12:46,970 Beraz, nahiko erraza da. 257 00:12:46,970 --> 00:12:51,970 Orain zer bagina egiten ari gara da frecall da irakurtzen ari gara int tamaina 258 00:12:51,970 --> 00:12:54,180 aldiz, 10 informazio byte. 259 00:12:54,180 --> 00:12:59,040 Int izate neurria four-- hori da c zenbaki oso bat tamaina. 260 00:12:59,040 --> 00:13:02,790 >> Beraz, zer egiten ari garen bezalako irakurtzen ari gara 40 byte informazio merezi 261 00:13:02,790 --> 00:13:05,850 fitxategia batetik adierazi ptr arabera. 262 00:13:05,850 --> 00:13:08,600 Eta horiek gordetzeko ari gara 40 byte nonbait 263 00:13:08,600 --> 00:13:12,080 non ezarri ditugu alde batera utzita 40 byte memoria merezi. 264 00:13:12,080 --> 00:13:15,970 Zorionez, dagoeneko egin dugun moduan ARR geratuko, array bertan. 265 00:13:15,970 --> 00:13:19,770 Hori dela eskuratzeko gai 10 lau byte unitateak. 266 00:13:19,770 --> 00:13:22,860 Beraz, guztira, 40 eutsi ahal izango da byte informazio merezi. 267 00:13:22,860 --> 00:13:26,540 Eta orain, 40 byte irakurtzerakoan dugu fitxategitik informazio, 268 00:13:26,540 --> 00:13:30,330 eta egiten ari gordetzeko dugu ARR ere. 269 00:13:30,330 --> 00:13:35,470 >> Erakusleak bideoko Gogoratu sorta bat, besteak beste, ARR gisa izenean, 270 00:13:35,470 --> 00:13:38,370 benetan erakuslea besterik Bere lehen elementua da. 271 00:13:38,370 --> 00:13:43,680 Beraz, noiz pasatzen dugu ARR ere ez, ez dugu dira, hain zuzen ere, erakuslea igaroz. 272 00:13:43,680 --> 00:13:46,120 >> Antzera Halako egin ahal izango dugu ez dugu nahitaez 273 00:13:46,120 --> 00:13:51,200 pilan gure buffer gorde behar. 274 00:13:51,200 --> 00:13:54,990 Era berean, ezin dinamikoki esleitu dugu hau bezalako buffer, malloc erabiliz. 275 00:13:54,990 --> 00:13:57,340 Gogoratu, betiere dugu dinamikoki esleitu memoria, 276 00:13:57,340 --> 00:14:00,550 Oraindik aurrezteko dugu arazoak izaten ari, ezin pila. 277 00:14:00,550 --> 00:14:02,110 Baina oraindik buffer bat. 278 00:14:02,110 --> 00:14:06,810 >> Oraindik da, kasu honetan, ez da 640 Informazio byte eusten 279 00:14:06,810 --> 00:14:09,230 bikoitza hartzen zortzi byte delako. 280 00:14:09,230 --> 00:14:11,570 Eta 80 Horietako ari gara galdezka. 281 00:14:11,570 --> 00:14:13,770 Espazioa izan nahi dugu 80 bikoitzak eduki. 282 00:14:13,770 --> 00:14:17,210 Beraz, 80 aldiz 8 640 byte informazio da. 283 00:14:17,210 --> 00:14:21,880 Eta fread deia dela 640 Informazio byte biltzeko 284 00:14:21,880 --> 00:14:27,770 fitxategia adierazi by PTR eta orain gordetzeko arr2 ere. 285 00:14:27,770 --> 00:14:32,770 >> Orain, gainera, fread tratatu ahal izango dugu besterik fgetc dei bat bezala. 286 00:14:32,770 --> 00:14:37,140 Kasu honetan, besterik ez dugu saiatzen ari fitxategia karaktere bat lortzeko. 287 00:14:37,140 --> 00:14:40,070 Eta ez dugu behar bat pertsonaia bat eduki sorta. 288 00:14:40,070 --> 00:14:43,170 Besterik ezin dugu bertan denda Pertsonaia aldagai bat. 289 00:14:43,170 --> 00:14:46,390 >> Harrapatzen, nahiz eta, hori da, denean besterik ez dugu aldagai bat, 290 00:14:46,390 --> 00:14:50,290 Ikastaroa gainditu behar dugu aldagai horren helbidea 291 00:14:50,290 --> 00:14:52,550 Gogoratu delako fread lehen argumentua 292 00:14:52,550 --> 00:14:59,210 kokapena eta memoria erakuslea da Bertan informazioa gorde nahi dugu. 293 00:14:59,210 --> 00:15:01,550 Berriz ere, batzuen izena array erakuslea da. 294 00:15:01,550 --> 00:15:04,200 Beraz, ez dugu behar array ampersand egin. 295 00:15:04,200 --> 00:15:07,270 Baina c, pertsonaia c Hemen, ez dago aukeran. 296 00:15:07,270 --> 00:15:08,390 Aldagai bat besterik ez da. 297 00:15:08,390 --> 00:15:11,840 Eta beraz bat gainditu behar dugu ampersand c den adierazteko 298 00:15:11,840 --> 00:15:15,350 Hori dela eta bertan nahi dugun helbidea da Bat informazio byte hau gordetzeko, 299 00:15:15,350 --> 00:15:20,479 Bat pertsonaia hori ptr ari gara jasotzen. 300 00:15:20,479 --> 00:15:22,270 Fwrite-- joango naiz bitartez hau pixka bat gehiago 301 00:15:22,270 --> 00:15:25,440 azkar nahiko askoz fread baliokidea zehatza 302 00:15:25,440 --> 00:15:27,720 ezik idazketarako da ordez irakurketaren, besterik 303 00:15:27,720 --> 00:15:31,610 other-- bezala irekita izan dugu eta itxi, pertsonaia bat lortzeko, 304 00:15:31,610 --> 00:15:32,530 pertsonaia bat idatzi. 305 00:15:32,530 --> 00:15:35,040 Orain lortu arbitrarioa da Informazio kopuru, 306 00:15:35,040 --> 00:15:37,170 eskuineko informazio kopuru arbitrarioa. 307 00:15:37,170 --> 00:15:39,790 Beraz bezala aurretik, ahal dugun 10 zenbaki osoen array bat 308 00:15:39,790 --> 00:15:43,210 non dagoeneko badugu Informazio gordeta, agian. 309 00:15:43,210 --> 00:15:46,580 >> Kode lerro batzuk Ziurrenik zen duten bi hauen artean joan behar du 310 00:15:46,580 --> 00:15:49,990 non batera ARR bete dut zerbait esanguratsua. 311 00:15:49,990 --> 00:15:51,880 Egiten dut bete 10 osokoak ezberdinekin. 312 00:15:51,880 --> 00:15:54,920 Eta horren ordez, zer naiz egiten ari da, ARR idazten 313 00:15:54,920 --> 00:15:58,600 eta ARR-tik informazioa biltzeko. 314 00:15:58,600 --> 00:16:02,390 Eta informazio hori hartu dut eta jarriz fitxategia sartu. 315 00:16:02,390 --> 00:16:05,410 >> Beraz ordez izatetik da buffer fitxategia, 316 00:16:05,410 --> 00:16:08,790 ari gara, hemendik aurrera doa fitxategira bufferraren. 317 00:16:08,790 --> 00:16:10,580 Beraz, besterik gabe, alderantzizkoa da. 318 00:16:10,580 --> 00:16:16,680 Beraz, berriro ere, besterik ez bezala, aurretik, ahal dugun Era berean, zeure memoria zatia 319 00:16:16,680 --> 00:16:19,600 dinamikoki ditudan dugu esleitu eta hori irakurri 320 00:16:19,600 --> 00:16:21,570 eta idatzi dituen fitxategia da. 321 00:16:21,570 --> 00:16:24,900 >> Eta aldagai bakar bat ere izan dugu byte bat eskuratzeko gai 322 00:16:24,900 --> 00:16:27,200 Informazio, hala nola, pertsonaia gisa. 323 00:16:27,200 --> 00:16:29,830 Baina, berriro ere, gainditu beharko dugu aldagai horren helbidea 324 00:16:29,830 --> 00:16:31,840 denean bertatik irakurri nahi dugu. 325 00:16:31,840 --> 00:16:35,280 Beraz, informazioa idatz dezakegu aurkituko helbide hartan dugu 326 00:16:35,280 --> 00:16:39,050 fitxategia erakusleak, PTR. 327 00:16:39,050 --> 00:16:41,630 >> Ez da, beste asko fitxategia handia I / O funtzioak 328 00:16:41,630 --> 00:16:44,650 Hori egin hainbat gauza gainera Direnak gaur hitz egin dugu. 329 00:16:44,650 --> 00:16:46,450 Direnak pare bat erabilgarria aurkituko duzu agian 330 00:16:46,450 --> 00:16:50,840 Fgets eta fputs dira, bertan baliokideak dira 331 00:16:50,840 --> 00:16:56,190 fgetc eta fputc of baina irakurtzeko fitxategi batetik katea bakar batean. 332 00:16:56,190 --> 00:16:59,020 Horren ordez karaktere bakar bat, kate oso bat irakurri ahal izango da. 333 00:16:59,020 --> 00:17:02,940 fprintf, funtsean ahalbidetzen printf erabili behar duzu fitxategi batean idatzi behar. 334 00:17:02,940 --> 00:17:05,619 Beraz, besterik ez bezala egin ahal izango duzu aldagai ordezkapena erabiliz 335 00:17:05,619 --> 00:17:09,900 placeholders ehuneko i eta ehuneko d, eta abar, printf 336 00:17:09,900 --> 00:17:14,690 era berean, ezin duzu hartu du printf kate eta inprimatu zerbait 337 00:17:14,690 --> 00:17:16,800 fitxategi batean gordetzen duten bezala. 338 00:17:16,800 --> 00:17:20,720 >> fseek-- DVD bat baldin baduzu analogia erabili ohi dut hemen da 339 00:17:20,720 --> 00:17:23,109 Sort erabiliz bezalakoa da zure atzeratzeko eta Aurreratu 340 00:17:23,109 --> 00:17:25,819 botoiak movie mugitzeko. 341 00:17:25,819 --> 00:17:28,369 Era berean, fitxategia inguruan mugitu ahal izango duzu. 342 00:17:28,369 --> 00:17:30,250 Gauzak barrutik bat Fitxategiaren egitura 343 00:17:30,250 --> 00:17:34,270 c sortzen adierazle bat da duzu non daude fitxategia duzun. 344 00:17:34,270 --> 00:17:36,420 Zu zara oso at hasiak byte zero? 345 00:17:36,420 --> 00:17:39,290 Dira hemen duzu byte 100 at, byte 1.000, eta abar? 346 00:17:39,290 --> 00:17:44,340 Erabili ahal izango duzu kokapenean fseek arbitrarioki mugitu Adierazle hori aurrera edo atzera. 347 00:17:44,340 --> 00:17:46,744 >> Eta ftell, berriro DVD bat antzekoa, 348 00:17:46,744 --> 00:17:49,660 erlojua pixka bat esaten bezalakoa da zenbat minutu eta segundo dituzu 349 00:17:49,660 --> 00:17:52,480 Filma jakin bat sartu dira. 350 00:17:52,480 --> 00:17:56,990 Era berean, nola kontatzen ftell byte asko baitira fitxategi barruan. 351 00:17:56,990 --> 00:18:00,210 feof beste bertsio bat da Nik duzun ala ez detektatzeko 352 00:18:00,210 --> 00:18:01,700 lerro amaierara iritsi. 353 00:18:01,700 --> 00:18:03,600 Eta ferror funtzioa da erabili ditzakezun 354 00:18:03,600 --> 00:18:06,959 ala zerbait detektatzeko Lan-oker desagertu fitxategi batekin. 355 00:18:06,959 --> 00:18:08,750 Berriz ere, hau da, besterik gabe, azalera scratching. 356 00:18:08,750 --> 00:18:12,730 Ez da oraindik fitxategia askorekin gehiago I / O the io.h. funtzio 357 00:18:12,730 --> 00:18:16,620 Baina hau izango da ziurrenik lortuko duzu fitxategia erakusleak lanean hasi zen. 358 00:18:16,620 --> 00:18:17,640 Naiz Doug Lloyd. 359 00:18:17,640 --> 00:18:19,750 Hau CS50 da. 360 00:18:19,750 --> 00:18:21,669