1 00:00:00,000 --> 00:00:05,330 2 00:00:05,330 --> 00:00:07,870 >> Cainteoir: Go dtí seo, tá sé dóchúil gur chuid is mó de do chláir 3 00:00:07,870 --> 00:00:10,170 a bheith ina giotán ephemeral. 4 00:00:10,170 --> 00:00:13,310 Ritheann tú clár cosúil Mario nó greedy. 5 00:00:13,310 --> 00:00:17,350 Déanann sé rud éigin, leideanna sé b'fhéidir an t-úsáideoir le haghaidh roinnt eolais, 6 00:00:17,350 --> 00:00:20,400 roinnt aschur a phriontáil ar an scáileán, ach ansin nuair atá do chlár os a chionn, 7 00:00:20,400 --> 00:00:23,252 níl i ndáiríre níl aon fhianaise ann Bhí sé ar siúl riamh sa chéad áit. 8 00:00:23,252 --> 00:00:25,960 Ciallaíonn mé, cinnte, a bheadh ​​agat ar chlé sé ar oscailt i bhfuinneog críochfoirt, 9 00:00:25,960 --> 00:00:29,770 ach má tá tú soiléir do scáileán, níl i ndáiríre aon fhianaise ann go raibh sé. 10 00:00:29,770 --> 00:00:33,720 Ní chuirimid bhfuil modh a stóráil faisnéis leanúnach, faisnéis 11 00:00:33,720 --> 00:00:36,890 atá ann tar éis ár Tá an clár ag rith stopadh, 12 00:00:36,890 --> 00:00:39,241 nó nach bhfuil muid suas go dtí an bpointe seo. 13 00:00:39,241 --> 00:00:41,490 Fortunately áfach, a dhéanann c ar fáil dúinn an cumas 14 00:00:41,490 --> 00:00:44,220 chun é seo a chur i bhfeidhm trí rud ar a dtugtar 15 00:00:44,220 --> 00:00:48,330 comhad, struchtúr a bunúsach Is ionann comhad go mbeadh tú dúbailte 16 00:00:48,330 --> 00:00:53,826 cliceáil ar do ríomhaire, má tá tú a úsáidtear chun timpeallacht úsáideora grafacha. 17 00:00:53,826 --> 00:00:55,700 Go ginearálta iad ag obair le c, tá muid i ndáiríre 18 00:00:55,700 --> 00:00:59,965 ag dul a bheith ag obair le leideanna chun an comhad files-- stars-- 19 00:00:59,965 --> 00:01:02,090 ach amháin i gcás beagán nuair a labhairt linn faoi ar feadh cúpla 20 00:01:02,090 --> 00:01:04,560 de na feidhmeanna sin ag obair le leideanna comhad. 21 00:01:04,560 --> 00:01:08,990 Ní gá duit a bheith dug i ndáiríre ró-doimhin isteach leideanna tuiscint 22 00:01:08,990 --> 00:01:09,730 iad féin. 23 00:01:09,730 --> 00:01:12,870 Níl le beagán teeny áit a mbeidh muid ag labhairt mar gheall orthu, 24 00:01:12,870 --> 00:01:18,090 ach go ginearálta comhad leideanna agus leideanna, cé go idirghaolmhar, 25 00:01:18,090 --> 00:01:20,290 Nach bhfuil díreach an rud céanna. 26 00:01:20,290 --> 00:01:22,440 >> Anois, cad féidir liom a chiallaíonn nuair Rá liom sonraí leanúnach? 27 00:01:22,440 --> 00:01:23,650 Cad is sonraí leanúnach? 28 00:01:23,650 --> 00:01:25,232 Cén fáth a bhfuil muid ag cúram faoi? 29 00:01:25,232 --> 00:01:27,190 Abair, mar shampla, go bhfuil tú ag rith clár 30 00:01:27,190 --> 00:01:29,850 nó atá tú athscríobh ar clár go bhfuil cluiche, 31 00:01:29,850 --> 00:01:32,960 agus ba mhaith leat súil a choinneáil de gach ceann de na mbogann an úsáideora 32 00:01:32,960 --> 00:01:36,620 ionas go mbeidh b'fhéidir má théann rud éigin mícheart, is féidir leat athbhreithniú an comhad tar éis an cluiche. 33 00:01:36,620 --> 00:01:39,970 Sin an méid atá i gceist againn nuair a táimid ag labhairt faoi shonraí leanúnach. 34 00:01:39,970 --> 00:01:43,930 >> I gcúrsa a reáchtáil do clár, comhad a cruthaíodh. 35 00:01:43,930 --> 00:01:45,680 Agus nuair do chlár Tá stop ag rith, 36 00:01:45,680 --> 00:01:48,689 go comhad ann fós ar do chóras. 37 00:01:48,689 --> 00:01:50,230 Agus is féidir linn breathnú ar sé agus é a scrúdú. 38 00:01:50,230 --> 00:01:53,670 Agus mar sin go mbeadh an clár sin a shocrú chun a chruthaigh cuid de na sonraí leanúnach, 39 00:01:53,670 --> 00:01:57,390 ann sonraí i ndiaidh an chláir Tá críochnaithe ag rith. 40 00:01:57,390 --> 00:02:02,320 >> Anois go léir de na feidhmeanna a oibríonn le cruthú comhaid agus ionramháil 41 00:02:02,320 --> 00:02:04,940 iad ar bhealaí éagsúla beo i io.h caighdeánach, 42 00:02:04,940 --> 00:02:08,210 a bhfuil comhad header go tá tú ag dócha punt 43 00:02:08,210 --> 00:02:10,910 lena n-áirítear ag barr deas i bhfad gach ceann de do chláir 44 00:02:10,910 --> 00:02:14,130 toisc go bhfuil sé ar cheann de na an chuid is mó feidhmeanna úsáideach dúinn, 45 00:02:14,130 --> 00:02:16,130 printf, a ligeann freisin ina chónaí i io.h. caighdeánach 46 00:02:16,130 --> 00:02:20,400 Mar sin, ní gá duit a chur san áireamh punt aon chomhaid bhreise is dócha 47 00:02:20,400 --> 00:02:23,540 d'fhonn a bheith ag obair le leideanna comhad. 48 00:02:23,540 --> 00:02:29,980 >> Anois gach feidhm pointeoir comhaid aonair, nó gach comhad amháin I / O, aschur ionchur 49 00:02:29,980 --> 00:02:33,310 fheidhm Glacann, mar aon ní amháin de a paraiméadair nó ionchuir 50 00:02:33,310 --> 00:02:35,822 a pointer-- comhad amháin ar cheann amháin, fopen, a 51 00:02:35,822 --> 00:02:38,280 bhfuil an méid a úsáideann tú a fháil ar an comhad a pointeoir sa chéad áit. 52 00:02:38,280 --> 00:02:41,010 Ach tar éis atá tú d'oscail an comhad agus a gheobhaidh tú leideanna comhad, 53 00:02:41,010 --> 00:02:43,510 is féidir leat pas a fháil ansin iad mar argóintí chun na feidhmeanna éagsúla 54 00:02:43,510 --> 00:02:46,720 táimid ag dul chun labhairt faoi lá atá inniu ann, chomh maith le go leor eile 55 00:02:46,720 --> 00:02:48,520 ionas gur féidir leat a bheith ag obair le comhaid. 56 00:02:48,520 --> 00:02:50,980 >> Mar sin, tá sé go leor cinn bhunúsacha chomhchoiteanna 57 00:02:50,980 --> 00:02:52,870 go bhfuil muid ag dul chun labhairt faoi lá atá inniu ann. 58 00:02:52,870 --> 00:02:57,160 fopen agus a companion fheidhm fclose, fgetc 59 00:02:57,160 --> 00:03:02,670 agus a fputc feidhm chompánach, agus fread agus a fheidhm compánach, 60 00:03:02,670 --> 00:03:03,820 fwrite. 61 00:03:03,820 --> 00:03:05,180 Mar sin a ligean ar a fháil ceart isteach é. 62 00:03:05,180 --> 00:03:07,050 >> fopen-- cad a dhéanann sé? 63 00:03:07,050 --> 00:03:10,050 Bhuel, osclaíonn sé comhad agus é a tugann tú pointeoir comhad dó, 64 00:03:10,050 --> 00:03:14,000 ionas gur féidir leat é a úsáid ansin go comhad pointeoir mar argóint 65 00:03:14,000 --> 00:03:16,730 le haon cheann de na comhaid eile I / O feidhmeanna. 66 00:03:16,730 --> 00:03:19,100 An rud is tábhachtaí a mheabhrú leis fopen 67 00:03:19,100 --> 00:03:24,222 Tá go tar éis duit d'oscail an comhad nó a rinneadh glao cosúil leis an gceann seo, 68 00:03:24,222 --> 00:03:26,930 gá duit a sheiceáil chun a chinntiú go bhfuil an pointeoir a fuair tú ar ais 69 00:03:26,930 --> 00:03:28,320 Ní cothrom le margadh saothair. 70 00:03:28,320 --> 00:03:31,320 Más rud é nach bhfuil tú ag faire ar an físeán ar leideanna, ní fhéadfadh sé seo a dhéanamh ciall. 71 00:03:31,320 --> 00:03:35,639 Ach má tá tú iarracht a dhéanamh agus téigh i aisghlaoch pointeoir null, 72 00:03:35,639 --> 00:03:38,180 Beidh do chlár ag fulaingt is dócha a deighilt [inaudible]. 73 00:03:38,180 --> 00:03:40,540 Ba mhaith linn a dhéanamh cinnte go bhfuil muid fuair ais pointeoir dlisteanach. 74 00:03:40,540 --> 00:03:43,665 An chuid is mó den am beidh muid gotten pointeoir dlisteanach ar ais 75 00:03:43,665 --> 00:03:45,280 agus ní bheidh sé a bheith ina fhadhb. 76 00:03:45,280 --> 00:03:46,760 >> Mar sin, conas is féidir linn a dhéanamh glaoch chun fopen? 77 00:03:46,760 --> 00:03:48,051 Breathnaíonn sé go leor i bhfad mar seo. 78 00:03:48,051 --> 00:03:52,690 Réalta Comhad ptr-- CCO a bheith ina cineálach ainm do chomhad pointer-- fopen 79 00:03:52,690 --> 00:03:57,300 agus pas a fháil againn i dhá rud, ainm comhaid agus oibríocht ba mhaith linn a ghabháil de láimh. 80 00:03:57,300 --> 00:04:01,690 Mar sin, d'fhéadfadh linn a bheith glaoch go Breathnaíonn cosúil this-- PTR réalta comhad 1 is ionann fopen 81 00:04:01,690 --> 00:04:04,040 file1.txt. 82 00:04:04,040 --> 00:04:07,020 Agus is é an oibríocht atá roghnaithe agam r. 83 00:04:07,020 --> 00:04:08,639 >> Mar sin, cad a cheapann tú go bhfuil r anseo? 84 00:04:08,639 --> 00:04:11,180 Cad iad na cineálacha rudaí a chuirimid d'fhéadfadh a bheith in ann a dhéanamh ar chomhaid? 85 00:04:11,180 --> 00:04:13,760 86 00:04:13,760 --> 00:04:17,500 Dá bhrí sin tá r an oibríocht go againn roghnaigh nuair ba mhaith linn a léamh comhad. 87 00:04:17,500 --> 00:04:20,260 Mar sin, ba mhaith linn go bunúsach nuair a théimid ar glaoch mar seo 88 00:04:20,260 --> 00:04:25,440 a bheith ag fáil dúinn féin pointeoir comhad den sórt sin go bhféadfadh muid eolas a léamh ansin 89 00:04:25,440 --> 00:04:27,770 as file1.txt. 90 00:04:27,770 --> 00:04:34,190 >> Mar an gcéanna, d'fhéadfadh muid a oscailt 2.txt comhad do scríobh agus mar sin is féidir linn a pas a ptr2, 91 00:04:34,190 --> 00:04:38,210 an pointeoir comhad a chruthaigh mé anseo, mar argóint le haon fheidhm a 92 00:04:38,210 --> 00:04:40,080 Scríobhann faisnéis go comhad. 93 00:04:40,080 --> 00:04:43,767 Agus cosúil leis scríobh, níl freisin an rogha a gceangal, a. 94 00:04:43,767 --> 00:04:45,600 An difríocht idir scríobh agus appending 95 00:04:45,600 --> 00:04:50,920 a bheith go nuair a scríobhann tú chun an comhad, má dhéanann tú glao a fopen do scríobh 96 00:04:50,920 --> 00:04:54,761 agus go comhad ann cheana, tá sé ag dul go dtí scríobh an comhad iomlán. 97 00:04:54,761 --> 00:04:56,510 Tá sé ag dul chun tús a chur ag an tús an-, 98 00:04:56,510 --> 00:04:58,820 scriosadh an t-eolas sin ann cheana. 99 00:04:58,820 --> 00:05:02,210 >> De bharr an méid má osclaíonn tú é as appending, beidh sé dul go dtí deireadh an chomhaid 100 00:05:02,210 --> 00:05:04,340 má tá an téacs i ann cheana sé nó faisnéis ann, 101 00:05:04,340 --> 00:05:06,040 agus beidh sé tús ansin scríobh ó ann. 102 00:05:06,040 --> 00:05:08,570 Mar sin, ní bheidh ort a chailleann aon cheann de na eolas atá déanta agat roimh. 103 00:05:08,570 --> 00:05:12,110 Cibé acu is mian leat a scríobh nó a gceangal saghas brath ar an staid. 104 00:05:12,110 --> 00:05:16,840 Ach beidh a fhios agat is dócha cad é an Is oibríocht ceart nuair a thagann an t-am. 105 00:05:16,840 --> 00:05:18,020 Mar sin, tá go fopen. 106 00:05:18,020 --> 00:05:18,930 >> Cad faoi fclose? 107 00:05:18,930 --> 00:05:21,600 Bhuel, deas simplí, fclose ach glacann an pointeoir comhad. 108 00:05:21,600 --> 00:05:24,000 Agus mar a d'fhéadfadh a bheith ag súil, Dúnann sé go comhad. 109 00:05:24,000 --> 00:05:29,270 Agus nuair a tá muid dúnta comhad, ní féidir linn a dhéanamh aon chomhad níos mó I / O feidhmeanna, 110 00:05:29,270 --> 00:05:31,420 léamh nó scríobh, ar an gcomhad. 111 00:05:31,420 --> 00:05:36,444 Ní mór dúinn a ath-oscailt an comhad am eile chun 112 00:05:36,444 --> 00:05:38,610 chun leanúint ar aghaidh ag obair le baint úsáide as é na feidhmeanna I / O. 113 00:05:38,610 --> 00:05:41,520 Ciallaíonn Mar sin fclose linn a ag déanamh ag obair leis an comhad seo. 114 00:05:41,520 --> 00:05:44,690 Agus is é gach ní mór dúinn chun pas a fháil i ainm pointeoir comhad. 115 00:05:44,690 --> 00:05:50,010 Mar sin, ar sleamhnáin cúpla ó shin, ní mór dúinn fopened comhad téacs 1 ponc haghaidh léamh 116 00:05:50,010 --> 00:05:52,854 agus sannadh go pointeoir comhad a ptr1. 117 00:05:52,854 --> 00:05:55,020 Anois tá cinneadh déanta againn tá muid Déantar léamh ón chomhad. 118 00:05:55,020 --> 00:05:56,561 Ní mór dúinn a dhéanamh ar bith níos mó leis. 119 00:05:56,561 --> 00:05:58,890 Is féidir linn ptr1 díreach fclose. 120 00:05:58,890 --> 00:06:01,950 Agus mar an gcéanna d'fhéadfadh, táimid ag fclose na cinn eile. 121 00:06:01,950 --> 00:06:02,450 Ceart go leor. 122 00:06:02,450 --> 00:06:03,700 Mar sin, ar sin a oscailt agus a dhúnadh. 123 00:06:03,700 --> 00:06:05,780 Sin iad an dá bunúsach oibríochtaí ag tosú. 124 00:06:05,780 --> 00:06:08,050 >> Anois, ba mhaith linn a iarbhír a dhéanamh ar roinnt rudaí suimiúla, 125 00:06:08,050 --> 00:06:11,940 agus an chéad fheidhm go mbainfidh linn a féach bheidh dhéanamh go bhfuil fgetc-- 126 00:06:11,940 --> 00:06:14,110 comhad a fháil ar charachtar. 127 00:06:14,110 --> 00:06:17,350 Sin an méid a fgetc go ginearálta Bheadh ​​aistriú chun. 128 00:06:17,350 --> 00:06:20,190 Is é a sprioc sa saol a Léigh an carachtar seo chugainn, 129 00:06:20,190 --> 00:06:22,079 nó más é seo do an- chéad ghlaoch a fgetc 130 00:06:22,079 --> 00:06:23,870 ar feadh comhad áirithe, an chéad charachtar. 131 00:06:23,870 --> 00:06:26,210 Ach ansin tar éis sin, gheobhaidh tú an ceann eile, 132 00:06:26,210 --> 00:06:31,500 an carachtar go eile den comhad, agus siopaí sé i athróg carachtar. 133 00:06:31,500 --> 00:06:34,490 Mar atá déanta againn anseo, ionann ch char fgetc, 134 00:06:34,490 --> 00:06:36,389 pas a fháil in ainm pointeoir comhad. 135 00:06:36,389 --> 00:06:38,180 Arís, tá sé an- tábhachtach anseo cuimhneamh 136 00:06:38,180 --> 00:06:41,430 a d'fhonn a bheith acu an oibríocht éireoidh, 137 00:06:41,430 --> 00:06:45,690 an pointeoir comhad must've féin oscailte le haghaidh léamh. 138 00:06:45,690 --> 00:06:50,589 Ní féidir linn a léamh ar charachtar ó chomhad pointeoir a d'oscail againn le haghaidh scríbhneoireachta. 139 00:06:50,589 --> 00:06:52,630 Mar sin tá go bhfuil ceann de na teorainneacha fopen, ceart? 140 00:06:52,630 --> 00:06:55,470 Ní mór dúinn a shrianadh sinn féin a feidhmiú ach amháin 141 00:06:55,470 --> 00:06:57,710 oibríocht amháin le pointeoir comhad amháin. 142 00:06:57,710 --> 00:07:00,220 Má bhíomar ag iarraidh a léamh agus scríobh as an gcomhad céanna, 143 00:07:00,220 --> 00:07:03,840 ba mhaith linn a bheith acu ar oscailt dhá leith leideanna comhad go dtí an file-- céanna 144 00:07:03,840 --> 00:07:05,670 ceann amháin le haghaidh léamh, ceann amháin do scríobh. 145 00:07:05,670 --> 00:07:08,400 >> Mar sin arís, an chúis amháin A thabhairt liom suas anois 146 00:07:08,400 --> 00:07:11,920 mar má táimid ag dul a dhéanamh glaoch go fgetc, go must've pointeoir comhad 147 00:07:11,920 --> 00:07:14,172 oscailte le haghaidh léamh. 148 00:07:14,172 --> 00:07:15,880 Agus ansin go leor go simplí, gach ní mór dúinn a dhéanamh 149 00:07:15,880 --> 00:07:17,546 Is pas in ainm an pointeoir comhad. 150 00:07:17,546 --> 00:07:21,060 Mar sin, is ionann ch Char ptr1 fgetc. 151 00:07:21,060 --> 00:07:23,200 >> Sin ag dul a fháil dúinn an character-- chugainn 152 00:07:23,200 --> 00:07:25,575 nó arís, má tá sé seo an chéad am atá déanta againn an nglao, 153 00:07:25,575 --> 00:07:29,750 an chéad character-- cibé Tá comhad aird ag ptr1. 154 00:07:29,750 --> 00:07:32,210 Thabhairt chun cuimhne go raibh an comhad 1 ponc téacs. 155 00:07:32,210 --> 00:07:36,490 Beidh sé a fháil ar an chéad charachtar de sin agus beidh orainn é a stóráil sa ch athraitheach. 156 00:07:36,490 --> 00:07:37,941 Pretty simplí. 157 00:07:37,941 --> 00:07:40,190 Mar sin, tá muid d'fhéach sé ach amháin ag trí feidhmeanna agus táimid ag cheana 158 00:07:40,190 --> 00:07:43,070 is féidir a dhéanamh rud éigin deas néata. 159 00:07:43,070 --> 00:07:46,320 >> Mar sin, má táimid an cumas ag fáil carachtar 160 00:07:46,320 --> 00:07:48,943 agus it-- táimid ag lúibe sin againn ar aghaidh ag carachtair fháil 161 00:07:48,943 --> 00:07:51,390 ó chomhad os cionn agus os cionn agus anois táimid ag over-- 162 00:07:51,390 --> 00:07:54,500 Is féidir le léamh gach aonair carachtar an comhad. 163 00:07:54,500 --> 00:07:58,670 Agus má gcló againn gach carachtar díreach tar éis a léamh dúinn é, 164 00:07:58,670 --> 00:08:01,960 ní mór dúinn a léamh anois ó chomhad agus a bhfuil ann i gcló ar an scáileán. 165 00:08:01,960 --> 00:08:05,610 Táimid tar éis concatenated héifeachtach go comhad ar an scáileán. 166 00:08:05,610 --> 00:08:09,670 Agus sin an méid an Dhéanann cat ordú Linux. 167 00:08:09,670 --> 00:08:13,250 >> Má scríobhann tú cat i ainm an chomhaid, sé Beidh phriontáil amach an t-ábhar ar fad 168 00:08:13,250 --> 00:08:15,160 an chomhaid i do fuinneog teirminéil. 169 00:08:15,160 --> 00:08:19,010 Agus mar sin an lúb beag anseo, ach trí línte de chód, 170 00:08:19,010 --> 00:08:23,270 ach dúblaíonn sé go héifeachtach an cat ordú Linux. 171 00:08:23,270 --> 00:08:25,210 Mar sin, d'fhéadfadh an error cuma beagán aisteach, 172 00:08:25,210 --> 00:08:26,670 ach anseo cad atá ag tarlú anseo. 173 00:08:26,670 --> 00:08:31,460 Cé ionann ch fgetc, nach bhfuil PTR cothrom le EOF-- tá sé ina mouthful ar fad, 174 00:08:31,460 --> 00:08:34,669 ach a ligean ar bhriseadh síos ach mar sin tá sé soiléir ar an error. 175 00:08:34,669 --> 00:08:37,169 Mé comhdhlúite sé ar mhaithe le spás, 176 00:08:37,169 --> 00:08:39,049 cé go bhfuil sé beagán syntactically tricky. 177 00:08:39,049 --> 00:08:41,194 >> Mar sin, an chuid seo i gceart glas anois, tá an méid a dhéanamh? 178 00:08:41,194 --> 00:08:42,860 Bhuel, go díreach ar ár glaoch fgetc, ceart? 179 00:08:42,860 --> 00:08:44,530 Againn atá le feiceáil go roimh. 180 00:08:44,530 --> 00:08:49,500 Tá sé seo ag a fháil ar cheann carachtar ó na comhaid. 181 00:08:49,500 --> 00:08:53,220 Ansin gcomparáid againn go carachtar i gcoinne Comhadchríoch. 182 00:08:53,220 --> 00:08:57,470 Is Comhadchríoch luach speisialta go atá sainmhínithe i io.h caighdeánach, a 183 00:08:57,470 --> 00:08:59,390 is é an deireadh charachtar comhaid. 184 00:08:59,390 --> 00:09:03,450 Mar sin, go bunúsach cad atá ar siúl le tarlú Tá beidh an lúb léamh carachtar, 185 00:09:03,450 --> 00:09:07,445 i gcomparáid é a Comhadchríoch, an deireadh an carachtar comhaid. 186 00:09:07,445 --> 00:09:10,070 Más rud é nach bhfuil siad comhoiriúnach, mar sin ní mór dúinn shroich an deireadh an comhad, 187 00:09:10,070 --> 00:09:11,490 beidh orainn a phriontáil go carachtar amach. 188 00:09:11,490 --> 00:09:13,740 Ansin, beidh muid ag dul ar ais chuig an ag tosú ar an lúb arís. 189 00:09:13,740 --> 00:09:18,310 Beidh orainn a fháil ar charachtar, seiceáil i gcoinne Comhadchríoch, phriontáil amach, agus mar sin de 190 00:09:18,310 --> 00:09:21,094 agus mar sin de agus mar sin de, looping trí i mbealach 191 00:09:21,094 --> 00:09:22,760 go dtí go bhfaca shroich muid an deireadh an chomhaid. 192 00:09:22,760 --> 00:09:24,593 Agus ansin ag an bpointe sin, beidh muid a bheith clóite 193 00:09:24,593 --> 00:09:26,210 amach an t-ábhar ar fad ar an gcomhad. 194 00:09:26,210 --> 00:09:29,450 Mar sin arís, tá muid le feiceáil ach amháin fopen, fclose, agus fgetc 195 00:09:29,450 --> 00:09:34,950 agus cheana féin is féidir linn a dhúbailt a dtoil críochfort Linux. 196 00:09:34,950 --> 00:09:38,850 >> Mar a dúirt mé ag an tús, bhí againn fgetc agus fputc, 197 00:09:38,850 --> 00:09:41,860 agus bhí fputc an compánach fheidhm fgetc. 198 00:09:41,860 --> 00:09:44,880 Agus mar sin, mar a d'fhéadfá a shamhlú, is é an coibhéiseach scríbhneoireachta. 199 00:09:44,880 --> 00:09:49,440 Tugann sé deis dúinn a scríobh carachtar amháin go comhad. 200 00:09:49,440 --> 00:09:53,290 >> Arís, an caveat a bheith, ach mar a bhí sé leis fgetc, an comhad a 201 00:09:53,290 --> 00:09:56,660 go bhfuil muid ag scríobh chuig must've bhí a osclaíodh chun a scríobh nó le haghaidh appending. 202 00:09:56,660 --> 00:10:00,820 Má iarracht muid agus a úsáid fputc ar chomhad go atá againn a osclaíodh chun a léamh, 203 00:10:00,820 --> 00:10:02,760 táimid ag dul ag fulaingt le beagán de botún. 204 00:10:02,760 --> 00:10:04,440 Ach tá an glaoch simplí go leor. 205 00:10:04,440 --> 00:10:08,000 caipiteal fputc A ptr2, gach go bhfuil dul a dhéanamh ná sé 206 00:10:08,000 --> 00:10:12,040 ag dul a scríobh an litir isteach A i gcomhad 2 ponc 207 00:10:12,040 --> 00:10:14,760 téacs, a raibh an t-ainm ar an comhad gur oscail muid agus sannadh 208 00:10:14,760 --> 00:10:17,280 an pointeoir a ptr2. 209 00:10:17,280 --> 00:10:20,430 Mar sin, táimid ag dul a scríobh caipiteal A chun an comhad 2 ponc téacs. 210 00:10:20,430 --> 00:10:24,592 Agus beidh muid ag scríobh exclamation pointe chun an comhad 3 ponc 211 00:10:24,592 --> 00:10:27,330 téacs, Cuireadh in iúl chun ag ptr3. 212 00:10:27,330 --> 00:10:29,730 Mar sin arís, deas simplí anseo. 213 00:10:29,730 --> 00:10:32,727 >> Ach anois is féidir linn a dhéanamh rud eile. 214 00:10:32,727 --> 00:10:34,560 Bhfuil sampla seo táimid ag bhí muid ag dul díreach os cionn 215 00:10:34,560 --> 00:10:38,950 faoi ​​a bheith in ann a mhacasamhlú an cat Linux ordú, an ceann a priontaí amach 216 00:10:38,950 --> 00:10:40,500 go dtí an scáileán. 217 00:10:40,500 --> 00:10:43,510 Bhuel, anois go bhfuil muid an cumas chun carachtair ó chomhaid a léamh 218 00:10:43,510 --> 00:10:46,590 agus leis na carachtair scríobh chun comhaid, cén fáth nach bhfuil muid in ionad go díreach 219 00:10:46,590 --> 00:10:50,720 glaoch chun printf le glaoch chun fputc. 220 00:10:50,720 --> 00:10:54,090 >> Agus anois tá muid dhúbailt cp, a dtoil Linux-bhunúsach 221 00:10:54,090 --> 00:10:59,100 gur labhair muid faoi bhealach fada ó shin i Linux orduithe físeáin. 222 00:10:59,100 --> 00:11:01,070 Tá muid go héifeachtach dhúbailt go ceart anseo. 223 00:11:01,070 --> 00:11:04,790 Táimid ag léamh carachtar agus ansin tá muid scríbhinn carachtar chun an comhad eile. 224 00:11:04,790 --> 00:11:07,660 Léitheoireacht ó chomhad amháin, scríobh go ceann eile, arís agus 225 00:11:07,660 --> 00:11:11,350 agus arís go dtí go bhuail muid Comhadchríoch. 226 00:11:11,350 --> 00:11:14,250 Tá muid fuair go dtí deireadh an comhad tá muid ag iarraidh a chóipeáil ó. 227 00:11:14,250 --> 00:11:18,500 Agus ag go beidh orainn a bheith scríofa go léir de na carachtair is gá dúinn chun an comhad 228 00:11:18,500 --> 00:11:19,500 go bhfuil muid ag scríobh chuig. 229 00:11:19,500 --> 00:11:24,270 Mar sin, is é seo cp, an chóip ordú Linux. 230 00:11:24,270 --> 00:11:26,550 >> Ag tús an-an físeán seo, bhí mé ar an caveat 231 00:11:26,550 --> 00:11:29,840 go mbeadh muid ag caint ar beag beagán faoi leideanna. 232 00:11:29,840 --> 00:11:32,480 Seo go sonrach nuair a bhíonn muid dul chun labhairt faoi leideanna 233 00:11:32,480 --> 00:11:34,800 chomh maith le leideanna comhad. 234 00:11:34,800 --> 00:11:37,870 Mar sin, Breathnaíonn an fheidhm seo de chineál ar scary. 235 00:11:37,870 --> 00:11:39,120 Tá sé fuair paraiméadair éagsúla. 236 00:11:39,120 --> 00:11:40,430 Níl a lán ar siúl anseo. 237 00:11:40,430 --> 00:11:42,760 Níl a lán de éagsúla dathanna agus téacsanna. 238 00:11:42,760 --> 00:11:47,100 Ach i ndáiríre, tá sé ach an Leagan cineálach de fgetc 239 00:11:47,100 --> 00:11:50,110 a ligeann dúinn a fháil ar aon méid eolais. 240 00:11:50,110 --> 00:11:53,560 Is féidir leis a bheith ina giotán mí-éifeachtach má tá muid ag fáil carachtair amháin ag an am, 241 00:11:53,560 --> 00:11:55,770 iterating tríd an comhad carachtar amháin ag an am. 242 00:11:55,770 --> 00:12:00,230 Ní bheadh ​​sé níos deise a fháil 100 ag an am nó 500 ag an am? 243 00:12:00,230 --> 00:12:03,250 >> Bhuel, fread agus d'fheidhm companion fwrite, a beidh muid ag labhairt faoi 244 00:12:03,250 --> 00:12:05,490 sa dara, ar ár gcumas a dhéanamh go díreach. 245 00:12:05,490 --> 00:12:08,480 Is féidir linn a léamh méid treallach Faisnéis ó chomhad 246 00:12:08,480 --> 00:12:10,290 agus é a stóráil táimid ag áit éigin go sealadach. 247 00:12:10,290 --> 00:12:12,980 In ionad a bheith in ann díreach d'oirfeadh sé i athróg aonair, 248 00:12:12,980 --> 00:12:15,790 D'fhéadfadh gá dúinn chun é a stóráil i sraith. 249 00:12:15,790 --> 00:12:19,980 Agus mar sin, pas againn i gceithre argóintí a fread-- pointeoir 250 00:12:19,980 --> 00:12:23,940 leis an suíomh ina bhfuil muid dul faisnéis a stóráil, 251 00:12:23,940 --> 00:12:29,180 cé chomh mór gach aonad faisnéise Beidh, cé mhéad aonad eolais 252 00:12:29,180 --> 00:12:35,192 ba mhaith linn a fháil, agus ó a comhad ba mhaith linn a fháil dóibh. 253 00:12:35,192 --> 00:12:37,150 Is dócha is fearr a léirítear le sampla anseo. 254 00:12:37,150 --> 00:12:41,640 Mar sin, a ligean ar rá go dearbhaímid le sraith de 10 slánuimhreacha. 255 00:12:41,640 --> 00:12:45,080 Táimid tar éis a dhearbhú díreach ar an Stack treallach int arr 10. 256 00:12:45,080 --> 00:12:46,970 Mar sin tá go leor simplí. 257 00:12:46,970 --> 00:12:51,970 Anois, cad táimid ag déanamh cé go bhfuil an frecall Tá tá muid ag léamh méid slánuimhir 258 00:12:51,970 --> 00:12:54,180 amanna 10 bytes faisnéise. 259 00:12:54,180 --> 00:12:59,040 Méid an slánuimhir bheith four-- go an méid de slánuimhir i c. 260 00:12:59,040 --> 00:13:02,790 >> Mar sin, cad tá muid ag déanamh go bhfuil muid ag léamh 40 bytes fiú na faisnéise 261 00:13:02,790 --> 00:13:05,850 ón gcomhad aird ag PTR. 262 00:13:05,850 --> 00:13:08,600 Agus tá muid ag a stóráil siúd 40 bytes áit éigin 263 00:13:08,600 --> 00:13:12,080 áit a bhfuil a leag muid leataobh 40 bytes fiú de chuimhne. 264 00:13:12,080 --> 00:13:15,970 Fortunately, tá muid déanta cheana féin go bhfuil ag dhearbhú arr, go eagar ceart ann. 265 00:13:15,970 --> 00:13:19,770 Atá in ann an ghabháltais 10 n-aonad ceithre-beart. 266 00:13:19,770 --> 00:13:22,860 Mar sin, san iomlán, is féidir é a shealbhú 40 bytes fiú faisnéise. 267 00:13:22,860 --> 00:13:26,540 Agus tá muid ag léamh anois 40 bytes Faisnéis ó na comhaid, 268 00:13:26,540 --> 00:13:30,330 agus táimid ag a stóráil i arr. 269 00:13:30,330 --> 00:13:35,470 >> Athghairm ón físeán ar leideanna go an t-ainm eagar, ar nós arr, 270 00:13:35,470 --> 00:13:38,370 Is ndáiríre ach pointeoir ar a chéad eilimint. 271 00:13:38,370 --> 00:13:43,680 Mar sin, nuair a théann muid i arr ann, táimid ag Tá, i ndáiríre, ag dul i pointeoir. 272 00:13:43,680 --> 00:13:46,120 >> Mar an gcéanna is féidir linn a dhéanamh this-- ní dhéanaimid gá go 273 00:13:46,120 --> 00:13:51,200 Ní mór a shábháil ar ár maolán ar an chairn. 274 00:13:51,200 --> 00:13:54,990 D'fhéadfadh muid chomh maith dinimiciúil a leithdháileadh a Maolán mar seo, ag baint úsáide as malloc. 275 00:13:54,990 --> 00:13:57,340 Cuimhnigh, nuair a muid cuimhne dinimiciúil leithdháileadh, 276 00:13:57,340 --> 00:14:00,550 táimid ag coigilt sé ar an gcarn, nach bhfuil an chairn. 277 00:14:00,550 --> 00:14:02,110 Ach tá sé fós ina maolán. 278 00:14:02,110 --> 00:14:06,810 >> Fós, sa chás seo tá sé, a bhfuil 640 bytes na faisnéise 279 00:14:06,810 --> 00:14:09,230 toisc go dtarlaíonn dúbailte suas ocht bytes. 280 00:14:09,230 --> 00:14:11,570 Agus tá muid ag iarraidh 80 acu. 281 00:14:11,570 --> 00:14:13,770 Ba mhaith linn a bheith acu spás de bheith i seilbh 80 doubles. 282 00:14:13,770 --> 00:14:17,210 Mar sin, tá 80 uair 8 eolas 640 bytes. 283 00:14:17,210 --> 00:14:21,880 Agus is é sin glaoch chun fread bhailiú 640 bytes na faisnéise 284 00:14:21,880 --> 00:14:27,770 ón gcomhad Luaigh ag PTR agus a stóráil anois i arr2. 285 00:14:27,770 --> 00:14:32,770 >> Anois is féidir linn déileáil freisin fread díreach cosúil le glaoch chun fgetc. 286 00:14:32,770 --> 00:14:37,140 Sa chás seo, tá muid ag iarraidh ach a a fháil carachtar amháin ón gcomhad. 287 00:14:37,140 --> 00:14:40,070 Agus ní mór dúinn ar sraith a shealbhú carachtar. 288 00:14:40,070 --> 00:14:43,170 Is féidir linn a stóráil ach é i athróg carachtar. 289 00:14:43,170 --> 00:14:46,390 >> An ghabháil, cé go bhfuil, go nuair atá againn ach athróg, 290 00:14:46,390 --> 00:14:50,290 ní mór dúinn chun pas a fháil sa seoladh an athróg 291 00:14:50,290 --> 00:14:52,550 mar gheall ar thabhairt chun cuimhne go bhfuil an an chéad argóint go fread 292 00:14:52,550 --> 00:14:59,210 Is pointeoir chuig an suíomh agus cuimhne áit ar mhaith linn a a stóráil an t-eolas. 293 00:14:59,210 --> 00:15:01,550 Arís, an t-ainm ar Is sraith pointeoir. 294 00:15:01,550 --> 00:15:04,200 Mar sin, ní mór dúinn a dhéanamh eagar ampersand. 295 00:15:04,200 --> 00:15:07,270 Ach c, an carachtar c anseo nach bhfuil, le sraith. 296 00:15:07,270 --> 00:15:08,390 Tá sé ach athróg. 297 00:15:08,390 --> 00:15:11,840 Agus mar sin ní mór dúinn chun pas a fháil ar ampersand c a chur in iúl 298 00:15:11,840 --> 00:15:15,350 go bhfuil go bhfuil an seoladh inar mian linn a a stóráil ar an beart amháin eolais, 299 00:15:15,350 --> 00:15:20,479 an carachtar amháin go táimid ag bailiú ó PTR. 300 00:15:20,479 --> 00:15:22,270 Fwrite-- beidh mé ag dul tríd seo beagán níos mó 301 00:15:22,270 --> 00:15:25,440 quickly-- é go leor i bhfad an coibhéiseach cruinn fread 302 00:15:25,440 --> 00:15:27,720 ach amháin i gcás tá sé do scríobh in ionad na léitheoireachta, ach 303 00:15:27,720 --> 00:15:31,610 cosúil leis an other-- tá muid go raibh ar oscailt agus gar, a fháil carachtar, 304 00:15:31,610 --> 00:15:32,530 scríobh carachtar. 305 00:15:32,530 --> 00:15:35,040 Anois, tá sé a fháil treallach méid faisnéise, 306 00:15:35,040 --> 00:15:37,170 méid treallach ceart faisnéise. 307 00:15:37,170 --> 00:15:39,790 Mar sin, díreach mar a bhíodh, is féidir linn tá le sraith de 10 slánuimhreacha 308 00:15:39,790 --> 00:15:43,210 áit a bhfuil muid cheana fhaisnéis arna stóráil, b'fhéidir. 309 00:15:43,210 --> 00:15:46,580 >> Bhí sé dócha roinnt línte de chód Ba chóir a théann idir an dá 310 00:15:46,580 --> 00:15:49,990 i gcás ina a líonadh mé ARR le rud éigin fiúntach. 311 00:15:49,990 --> 00:15:51,880 Líonadh liom é le 10 slánuimhreacha éagsúla. 312 00:15:51,880 --> 00:15:54,920 Agus ina ionad sin, cad tá mé déanamh go bhfuil ag scríobh ó Arr 313 00:15:54,920 --> 00:15:58,600 agus a bhailiú an t-eolas ó arr. 314 00:15:58,600 --> 00:16:02,390 Agus tá mé ag cur an fhaisnéis sin agus é a chur isteach ar an gcomhad. 315 00:16:02,390 --> 00:16:05,410 >> Mar sin, in ionad a bheith as é a an gcomhad do na maolán, 316 00:16:05,410 --> 00:16:08,790 táimid ag dul anois ó an maolán chun an comhad. 317 00:16:08,790 --> 00:16:10,580 Mar sin, tá sé ach an droim ar ais. 318 00:16:10,580 --> 00:16:16,680 Mar sin arís, díreach mar a bhíodh, is féidir linn chomh maith le smután gcarn de chuimhne 319 00:16:16,680 --> 00:16:19,600 go bhfuil muid dinimiciúil leithdháileadh agus a léamh ó sin 320 00:16:19,600 --> 00:16:21,570 agus scríobh go dtí an comhad. 321 00:16:21,570 --> 00:16:24,900 >> Agus ní mór dúinn freisin athróg amháin ann a bhfuil beart amháin 322 00:16:24,900 --> 00:16:27,200 na faisnéise, cosúil le carachtar. 323 00:16:27,200 --> 00:16:29,830 Ach arís, ní mór dúinn chun pas a fháil i an seoladh an athróg 324 00:16:29,830 --> 00:16:31,840 nuair ba mhaith linn a léamh as é. 325 00:16:31,840 --> 00:16:35,280 Mar sin, is féidir linn a an t-eolas a scríobh feicimid ag an seoladh sin 326 00:16:35,280 --> 00:16:39,050 leis an pointeoir comhad, PTR. 327 00:16:39,050 --> 00:16:41,630 >> Níl go leor de eile comhad mór I feidhmeanna / O 328 00:16:41,630 --> 00:16:44,650 a dhéanamh rudaí éagsúla sa bhreis na cinn atá againn Labhair faoi lá atá inniu ann. 329 00:16:44,650 --> 00:16:46,450 Tá cúpla de na cinn d'fhéadfadh tú úsáideach 330 00:16:46,450 --> 00:16:50,840 Tá fgets agus fputs, a bhfuil an coibhéiseach 331 00:16:50,840 --> 00:16:56,190 de fgetc agus fputc ach le haghaidh léamh teaghrán amháin ó chomhad. 332 00:16:56,190 --> 00:16:59,020 In ionad de chineál amháin, Beidh sé a léamh teaghrán fad. 333 00:16:59,020 --> 00:17:02,940 fprintf, a cheadaíonn go bunúsach tú printf a úsáid a scríobh chun an comhad. 334 00:17:02,940 --> 00:17:05,619 Mar sin, go díreach mar a Is féidir leat a a chur in ionad athróg ag baint úsáide as 335 00:17:05,619 --> 00:17:09,900 an i placeholders faoin gcéad agus faoin gcéad d, agus mar sin de, le printf 336 00:17:09,900 --> 00:17:14,690 Is féidir leat a chur ar an dul céanna leis an teaghrán printf agus rud éigin a phriontáil 337 00:17:14,690 --> 00:17:16,800 mar sin chun an comhad. 338 00:17:16,800 --> 00:17:20,720 >> fseek-- má tá tú imreoir DVD Is é an analaí liom a úsáid de ghnáth here-- 339 00:17:20,720 --> 00:17:23,109 Is saghas cosúil le baint úsáide as do athchasadh agus go tapa ar aghaidh 340 00:17:23,109 --> 00:17:25,819 cnaipí chun bogadh thart ar an scannán. 341 00:17:25,819 --> 00:17:28,369 Mar an gcéanna, is féidir leat dul timpeall an comhad. 342 00:17:28,369 --> 00:17:30,250 Ceann de na rudaí taobh istigh go struchtúr comhad 343 00:17:30,250 --> 00:17:34,270 go c Cruthaíonn mar tá tú táscaire an áit ina bhfuil tú sa chomhad. 344 00:17:34,270 --> 00:17:36,420 An bhfuil tú ag an an- ag tosú, ag beart náid? 345 00:17:36,420 --> 00:17:39,290 An bhfuil tú ag beart 100, beart 1,000, agus mar sin de? 346 00:17:39,290 --> 00:17:44,340 Is féidir leat é a úsáid fseek chun bogadh treallach go táscaire aghaidh nó ar gcúl. 347 00:17:44,340 --> 00:17:46,744 >> Agus ftell, arís cosúil le seinnteoir DVD, 348 00:17:46,744 --> 00:17:49,660 Is cosúil le clog beag a insíonn conas tá tú nóiméad agus soicind tú go leor 349 00:17:49,660 --> 00:17:52,480 Is i scannáin ar leith. 350 00:17:52,480 --> 00:17:56,990 Ar an gcaoi chéanna, insíonn duit conas ftell Tá a lán beart tú isteach an gcomhad. 351 00:17:56,990 --> 00:18:00,210 Is feof leagan éagsúla a bhrath cibé an tá tú 352 00:18:00,210 --> 00:18:01,700 shroich an deireadh an chomhaid. 353 00:18:01,700 --> 00:18:03,600 Agus is é ferror feidhm gur féidir leat é a úsáid 354 00:18:03,600 --> 00:18:06,959 a bhrath cé acu an bhfuil rud éigin imithe ag obair cearr le comhad. 355 00:18:06,959 --> 00:18:08,750 Arís, tá sé seo ach scratching an dromchla. 356 00:18:08,750 --> 00:18:12,730 Níl fós neart níos mó comhad I / O feidhmeanna sa io.h. caighdeánach 357 00:18:12,730 --> 00:18:16,620 Ach beidh sé seo a fháil is dócha tú thosaigh ag obair le leideanna comhad. 358 00:18:16,620 --> 00:18:17,640 Tá mé Doug Lloyd. 359 00:18:17,640 --> 00:18:19,750 Is é seo an CS50. 360 00:18:19,750 --> 00:18:21,669