1 00:00:00,000 --> 00:00:05,410 2 00:00:05,410 --> 00:00:08,770 >> ANDI PENG: Vi er nesten gjennom alle psets. 3 00:00:08,770 --> 00:00:12,080 Faktisk er vi gjennom de fleste av de vanskeligste psets. 4 00:00:12,080 --> 00:00:14,350 Så vi er faktisk bare kommer til å slags vind 5 00:00:14,350 --> 00:00:16,050 gjennom de neste par ukene. 6 00:00:16,050 --> 00:00:19,520 >> Vi kommer til å begynne å snakke om vår siste prosjekter, hendelsene kommer opp 7 00:00:19,520 --> 00:00:21,320 i de neste ukene. 8 00:00:21,320 --> 00:00:23,825 Og livet vil være en lek. 9 00:00:23,825 --> 00:00:26,510 10 00:00:26,510 --> 00:00:27,680 Så ikke så mye i dag. 11 00:00:27,680 --> 00:00:30,280 >> Forhåpentligvis vil faktisk bris gjennom agendaen for i dag, 12 00:00:30,280 --> 00:00:33,400 og så være ute av her med litt tid til overs. 13 00:00:33,400 --> 00:00:36,210 Også vil jeg be om unnskyldning for mangelen på godteri i dag. 14 00:00:36,210 --> 00:00:37,030 Jeg vet ikke hvorfor. 15 00:00:37,030 --> 00:00:40,520 Men i uken frem Halloween, ville jeg glemmer godteri. 16 00:00:40,520 --> 00:00:43,290 >> Så jeg er egentlig bare et stort skuffelse for deg akkurat nå. 17 00:00:43,290 --> 00:00:47,050 Fordi jeg bokstavelig talt husker godteri for hver enkelt klasse, men Halloween. 18 00:00:47,050 --> 00:00:49,345 Men neste uke, vil jeg ta doble mengden av godteri 19 00:00:49,345 --> 00:00:50,720 å gjøre opp for det, alt for deg. 20 00:00:50,720 --> 00:00:53,260 Det vil være stor. 21 00:00:53,260 --> 00:00:56,690 >> Så jeg har et par kunngjøringer om noen planlegging. 22 00:00:56,690 --> 00:00:59,520 Jeg har noen planlegging problemer. 23 00:00:59,520 --> 00:01:02,150 Vi så kommer til å gå videre til snakke om det som kalles chmod. 24 00:01:02,150 --> 00:01:05,980 Vi kommer til å snakke om raskt TCP / IP HTTP. 25 00:01:05,980 --> 00:01:09,770 >> Og så skal vi koden vår egen nettside ved hjelp av HTML og CSS. 26 00:01:09,770 --> 00:01:13,030 Og så skal jeg faktisk la kanskje som 20 minutter å snakke om pset6. 27 00:01:13,030 --> 00:01:16,550 Fordi pset6 er faktisk mye ting som vi allerede har sett før, 28 00:01:16,550 --> 00:01:19,090 men jeg ønsket å oppdatere noen av disse begrepene 29 00:01:19,090 --> 00:01:22,140 samt lære et par nye funksjoner. 30 00:01:22,140 --> 00:01:23,110 >> Kjølig. 31 00:01:23,110 --> 00:01:25,440 Så først av alt, Velkommen tilbake fra ferie. 32 00:01:25,440 --> 00:01:27,410 Jeg håper du er pause var hyggelig. 33 00:01:27,410 --> 00:01:29,695 Vil gjorde du for pause? 34 00:01:29,695 --> 00:01:30,820 PUBLIKUM: Dro til New York. 35 00:01:30,820 --> 00:01:32,030 ANDI PENG: Du dro til New York? 36 00:01:32,030 --> 00:01:33,738 Jeg tror halvparten skolen vår dro til New York. 37 00:01:33,738 --> 00:01:34,740 Det er greit. 38 00:01:34,740 --> 00:01:38,250 Jeg tilbrakte mesteparten av min pause stillesittende i sengen Netflixing. 39 00:01:38,250 --> 00:01:39,760 Og det var en god tid. 40 00:01:39,760 --> 00:01:43,450 >> Men vi er nå tilbake, tilbake i sesjon, tilbake i swing ting. 41 00:01:43,450 --> 00:01:47,900 Vi har en PSet grunn dette fredag ​​midt på dagen. 42 00:01:47,900 --> 00:01:50,240 >> Jeg tror du allerede har plukket opp quiz, ja? 43 00:01:50,240 --> 00:01:52,140 Så noen andre som har ikke hadde sine quizer, 44 00:01:52,140 --> 00:01:55,416 kan du komme og få dine quizer fra meg på slutten av seksjonen. 45 00:01:55,416 --> 00:01:56,540 Eller spore meg opp på campus. 46 00:01:56,540 --> 00:01:59,310 Jeg skal ha den med meg et sted. 47 00:01:59,310 --> 00:02:02,120 >> Vårt siste prosjekt pre-forslaget også. 48 00:02:02,120 --> 00:02:06,380 Så for de av oss som aldri har tatt denne klassen før, hjørnestein av CS50 49 00:02:06,380 --> 00:02:11,150 er veldig mye kulminerte i denne grand prosjekt som studentene foreslår. 50 00:02:11,150 --> 00:02:14,300 Og pre-forslaget, bare en generell idé 51 00:02:14,300 --> 00:02:18,500 av hva man kanskje ønsker å gjøre for deres prosjektet, er at ideen på grunn mandag, 52 00:02:18,500 --> 00:02:20,780 neste mandag midt på dagen. 53 00:02:20,780 --> 00:02:23,800 >> Så ganske mye, David tror jeg vil snakke mer om dette i foredraget 54 00:02:23,800 --> 00:02:25,390 hvis han ikke allerede. 55 00:02:25,390 --> 00:02:28,710 Og det er en solid side på vår hjemmeside forklarer 56 00:02:28,710 --> 00:02:31,610 alle kravene i prosjektet. 57 00:02:31,610 --> 00:02:34,082 Men i hovedsak, plukke et emne som du har 58 00:02:34,082 --> 00:02:35,915 vært interessert i hele tiden din her 59 00:02:35,915 --> 00:02:41,760 på CS, enten det er spill eller design eller video eller noe. 60 00:02:41,760 --> 00:02:44,920 >> Og du kan virkelig slags nå bruke noen av leksjonene 61 00:02:44,920 --> 00:02:52,470 at vi har lært her i CS50-- hi, welcome-- til ganske mye å drive 62 00:02:52,470 --> 00:02:56,320 et avsluttende prosjekt etter eget valg. 63 00:02:56,320 --> 00:02:59,570 Alt som er grunn Mandag er bare en kort blurb via e-post 64 00:02:59,570 --> 00:03:02,010 til meg, en rask dom, som, hei, Andi, 65 00:03:02,010 --> 00:03:06,490 Jeg er virkelig interessert i å utforme et spill som gjør dette for iOS. 66 00:03:06,490 --> 00:03:07,420 Kjølig. 67 00:03:07,420 --> 00:03:10,767 Bare la meg ditt kort innledende ideer for dine endelige prosjekter. 68 00:03:10,767 --> 00:03:13,850 Og vi skal snakke gjennom hvorvidt det er faktisk en god ide eller ikke, 69 00:03:13,850 --> 00:03:15,590 hvis det er en mulig idé eller ikke. 70 00:03:15,590 --> 00:03:20,760 Men bare pre-forslaget skyldes neste mandag. 71 00:03:20,760 --> 00:03:24,190 pset6, vår herlige web-- som er galt. 72 00:03:24,190 --> 00:03:25,060 Pset7? 73 00:03:25,060 --> 00:03:25,560 pset6? 74 00:03:25,560 --> 00:03:26,680 Det er pset6, ikke sant? 75 00:03:26,680 --> 00:03:32,690 >> pset6, vår webserver, skyldes Fredag ​​på middag med den avdøde dag. 76 00:03:32,690 --> 00:03:37,660 Kontortid gjenoppta normalt fra mandag til torsdag 08:00 til 11:00 denne uken. 77 00:03:37,660 --> 00:03:39,710 Jeg tror Commons for de neste tre nettene. 78 00:03:39,710 --> 00:03:40,310 Kjølig. 79 00:03:40,310 --> 00:03:44,260 Før vi hadde i materialet, er det noen har spørsmål, vitser, historier? 80 00:03:44,260 --> 00:03:46,662 Hva gjorde du for høstferien? 81 00:03:46,662 --> 00:03:48,640 >> PUBLIKUM: Hva gjør jeg? 82 00:03:48,640 --> 00:03:52,834 >> ANDI PENG: Allerede det er lenge siden faktisk. 83 00:03:52,834 --> 00:03:54,000 Christ dro til New York. 84 00:03:54,000 --> 00:03:55,614 Jeg bodde her og Netflixed. 85 00:03:55,614 --> 00:03:56,864 PUBLIKUM: Å, ja jeg var her. 86 00:03:56,864 --> 00:03:57,614 ANDI PENG: Oh, OK. 87 00:03:57,614 --> 00:03:59,792 PUBLIKUM: Jeg husker ikke hva som konkret. 88 00:03:59,792 --> 00:04:00,710 ANDI PENG: Det er OK. 89 00:04:00,710 --> 00:04:01,960 PUBLIKUM: Netflixing sannsynligvis. 90 00:04:01,960 --> 00:04:02,990 ANDI PENG: Netflixing. 91 00:04:02,990 --> 00:04:04,710 Ja, det er en god tid. 92 00:04:04,710 --> 00:04:05,780 OK. 93 00:04:05,780 --> 00:04:06,340 Greit. 94 00:04:06,340 --> 00:04:08,877 Eventuelle spørsmål før vi hopper inn i materialet? 95 00:04:08,877 --> 00:04:11,210 Dessuten skal vi prøve å fart gjennom seksjonen i dag, 96 00:04:11,210 --> 00:04:12,504 ikke for mye å dekke. 97 00:04:12,504 --> 00:04:14,420 Og forhåpentligvis vil vi få her ut litt tidlig. 98 00:04:14,420 --> 00:04:15,580 Sorry for ikke godteri, også. 99 00:04:15,580 --> 00:04:20,310 Jeg er en stor skuffelse spesielt under Halloween. 100 00:04:20,310 --> 00:04:21,110 >> Greit. 101 00:04:21,110 --> 00:04:21,810 Kjølig. 102 00:04:21,810 --> 00:04:28,370 Så vi kommer til å begynne å snakke om en kommandolinje argument heter chmod. 103 00:04:28,370 --> 00:04:32,850 chmod, er alt det er bare et Unix-system kaller gjennomført fra kommandolinjen 104 00:04:32,850 --> 00:04:34,700 å endre filrettigheter. 105 00:04:34,700 --> 00:04:37,790 Så for eksempel, har vi alle møtt en side 106 00:04:37,790 --> 00:04:40,550 som dette trolig en gang i vår levetid være en internett 107 00:04:40,550 --> 00:04:45,110 bruker, hvor vår web-server har gitt oss feil av forbudte. 108 00:04:45,110 --> 00:04:49,086 Du har ikke tillatelse til å få tilgang til, yadda, yadda, yadda, på denne serveren. 109 00:04:49,086 --> 00:04:50,960 Alt som egentlig betyr er at tilgangen 110 00:04:50,960 --> 00:04:53,920 som var festet til hva siden du prøvde å få tilgang 111 00:04:53,920 --> 00:04:55,840 var ikke åpent for deg. 112 00:04:55,840 --> 00:04:57,870 Så ganske mye, chmod er den måten 113 00:04:57,870 --> 00:05:02,140 Vi kan endre disse systemtillatelser å gi alle, brukeren, gruppen, 114 00:05:02,140 --> 00:05:04,975 eller verden, eller en hvilken som helst Kombinasjonen av disse tilgangs 115 00:05:04,975 --> 00:05:07,900 til visse filer, kataloger, noe virkelig, 116 00:05:07,900 --> 00:05:11,720 noen form for system på et operativsystem. 117 00:05:11,720 --> 00:05:14,039 Så hvis noen av dere har datamaskiner hvis du føler 118 00:05:14,039 --> 00:05:17,080 som følger sammen med meg i dag, helt gjerne bare skrive ting 119 00:05:17,080 --> 00:05:17,580 i. 120 00:05:17,580 --> 00:05:19,790 Hvis ikke, kan du bare henge ut. 121 00:05:19,790 --> 00:05:23,170 Så jeg kommer til å faktisk trekke opp terminalen min akkurat nå. 122 00:05:23,170 --> 00:05:29,810 123 00:05:29,810 --> 00:05:32,310 >> Så kommandoen for å kjøre chmod, eller i det minste bare 124 00:05:32,310 --> 00:05:37,840 å liste tillatelsene for din fil katalog, er bare ls-l. 125 00:05:37,840 --> 00:05:42,270 Som du kan se, en haug med ting dukker opp de fleste av disse 126 00:05:42,270 --> 00:05:45,390 er viktig for oss på venstre side her. 127 00:05:45,390 --> 00:05:48,710 Dere se en haug med hs, ws, 1 /. 128 00:05:48,710 --> 00:05:49,210 Yeah. 129 00:05:49,210 --> 00:05:51,400 >> De er egentlig bare alle filrettigheter 130 00:05:51,400 --> 00:05:55,960 å forklare hva visse kataloger og filene i systemet ditt har. 131 00:05:55,960 --> 00:05:58,150 Så la oss gå tilbake til power point her. 132 00:05:58,150 --> 00:06:02,450 133 00:06:02,450 --> 00:06:06,500 Så i tillegg til filnavnene som dere kan se på høyre side, 134 00:06:06,500 --> 00:06:10,312 vi er ute etter å se hovedsak bare kolonnen til venstre. 135 00:06:10,312 --> 00:06:12,020 Så i tillegg til å bare filnavnene, vi 136 00:06:12,020 --> 00:06:16,240 kan se rettighetene på filene, deres eiergruppe, gruppenavnet, dato 137 00:06:16,240 --> 00:06:18,460 at filen sist modifisert, et cetera. 138 00:06:18,460 --> 00:06:20,640 Du kan se en masse ting som bruker chmod. 139 00:06:20,640 --> 00:06:26,037 Så måten vi leser chmod er at den første bokstaven vi ganske mye ignorere 140 00:06:26,037 --> 00:06:27,370 i form av lesetillatelser. 141 00:06:27,370 --> 00:06:31,460 >> Den første bokstaven bare forteller oss hva type system vi får tilgang. 142 00:06:31,460 --> 00:06:34,240 d, i dette tilfellet, er en mappe eller katalog. 143 00:06:34,240 --> 00:06:38,430 Så vi vet at tiden min arbeidsplass § sju var en katalog. 144 00:06:38,430 --> 00:06:41,530 Og så ser dere tre triader, i hovedsak bare 145 00:06:41,530 --> 00:06:43,490 tre sett med tre tegn. 146 00:06:43,490 --> 00:06:45,680 Og du kan tenke på hver som en bit. 147 00:06:45,680 --> 00:06:49,260 >> Slik at du bare har tre sett med tre biter, ni biter totalt. 148 00:06:49,260 --> 00:06:51,420 Du behandler dem i grupper på tre. 149 00:06:51,420 --> 00:06:56,230 Slik at den første gruppe av tre er alltid dine brukertillatelser. 150 00:06:56,230 --> 00:07:00,557 >> Den andre gruppe på tre er Alltid grupperettigheter. 151 00:07:00,557 --> 00:07:02,765 Og tredje sett av tre er alltid sånn i verden, 152 00:07:02,765 --> 00:07:04,380 de overalt tillatelser. 153 00:07:04,380 --> 00:07:06,320 Så jeg antar det lett spørsmål å stille er hva som er 154 00:07:06,320 --> 00:07:08,051 forskjellen mellom bruker og gruppe. 155 00:07:08,051 --> 00:07:09,800 Den største forskjellen mellom bruker og gruppe 156 00:07:09,800 --> 00:07:13,180 er at en bruker er bare deg personlig tilgang til hva det er akkurat nå. 157 00:07:13,180 --> 00:07:18,070 En gruppe kan være hvis du har flere brukere på én datamaskin, for eksempel. 158 00:07:18,070 --> 00:07:20,280 Alle av dem kan bli behandlet som en gruppe. 159 00:07:20,280 --> 00:07:23,220 >> Og så er verden bare verden, alle sammen. 160 00:07:23,220 --> 00:07:31,010 Så vi kan se senere om hvordan vi kan modifisere dem inn i ulike tillatelser. 161 00:07:31,010 --> 00:07:33,080 Så ganske mye, vi er skal fortsatt fokusere 162 00:07:33,080 --> 00:07:38,450 på den delen til venstre, der for katalog CS50 vi se drwx, 163 00:07:38,450 --> 00:07:40,970 der r bare betyr at det er lesbart. 164 00:07:40,970 --> 00:07:42,620 >> W bare betyr at det er skrivbar. 165 00:07:42,620 --> 00:07:45,470 Og deretter x bare betyr at det er kjørbar. 166 00:07:45,470 --> 00:07:47,220 Man skulle tro det slag av ikke fornuftig. 167 00:07:47,220 --> 00:07:47,993 Det bør være e. 168 00:07:47,993 --> 00:07:50,150 Men x faktisk slags fungerer litt bedre, 169 00:07:50,150 --> 00:07:51,690 fordi du kan huske det bedre. 170 00:07:51,690 --> 00:07:56,406 >> Så de tre typer ting du kan gjøre, kan du enten lese en fil, 171 00:07:56,406 --> 00:07:59,280 du kan ha tillatelse til å skrive en fil, eller du kan ha tillatelse 172 00:07:59,280 --> 00:08:00,780 å utføre en fil. 173 00:08:00,780 --> 00:08:04,580 Og så den måten at vi faktisk representere dem i biter 174 00:08:04,580 --> 00:08:06,940 er tallene 4, 2 og 1. 175 00:08:06,940 --> 00:08:12,870 Så alt som er lesbar er representert ved antallet fire. 176 00:08:12,870 --> 00:08:15,150 >> Alt som er skrivbar er representert ved to. 177 00:08:15,150 --> 00:08:18,880 Og alt som er kjørbar som representert ved en. 178 00:08:18,880 --> 00:08:22,860 Så i denne forstand, kan vi også representere disse numbers-- 179 00:08:22,860 --> 00:08:25,281 Hei, velkommen, på en annen måte. 180 00:08:25,281 --> 00:08:25,780 Unnskyld. 181 00:08:25,780 --> 00:08:28,510 Før alle, kommer jeg til å beklager på vegne av alle 182 00:08:28,510 --> 00:08:29,468 inn i klassen nå. 183 00:08:29,468 --> 00:08:30,810 Jeg glemte godteri i dag. 184 00:08:30,810 --> 00:08:33,640 Jeg beklager at jeg er en fiasko denne uken av Halloween. 185 00:08:33,640 --> 00:08:37,070 Jeg vil gi dobbelt så mye godteri neste gang å gjøre opp for det. 186 00:08:37,070 --> 00:08:42,360 Men anyways, beklager om at gutta, sorry. 187 00:08:42,360 --> 00:08:46,640 >> Så den måten at vi kan faktisk inngang på vår kommando argumentet er vi 188 00:08:46,640 --> 00:08:51,760 kan gjøre chmod gruppe slash tillatelser, hvor konsernet er bare hva 189 00:08:51,760 --> 00:08:54,130 gruppe vi prøver å endre. 190 00:08:54,130 --> 00:08:56,600 Og tilgangen er hva vi ønsker å legge til det. 191 00:08:56,600 --> 00:08:58,860 Så for eksempel, pluss legger tillatelser, 192 00:08:58,860 --> 00:09:01,590 og subtrahere tar bort rettigheter. 193 00:09:01,590 --> 00:09:07,060 >> Og hvilke typer gruppe vi har vår en for alle, u for brukerne, g i grupper 194 00:09:07,060 --> 00:09:09,050 eller o for andre. 195 00:09:09,050 --> 00:09:10,300 Det er litt abstrakt akkurat nå. 196 00:09:10,300 --> 00:09:13,550 Men vi vil gå over et par eksempler bare for å demonstrere dette virkelig rask. 197 00:09:13,550 --> 00:09:16,960 Alle gode på dette lysbilde, så jeg kan gå videre? 198 00:09:16,960 --> 00:09:18,280 Kjølig. 199 00:09:18,280 --> 00:09:21,290 >> Så for eksempel, rwx. 200 00:09:21,290 --> 00:09:26,720 Før vi snakke om hva det representerer, først av alt hva betyr rwx? 201 00:09:26,720 --> 00:09:31,450 Hvis du ser at denne bestemte filen har rettighetene på rwx, 202 00:09:31,450 --> 00:09:34,270 hva betyr det at person kan være i stand til å gjøre? 203 00:09:34,270 --> 00:09:35,740 >> PUBLIKUM: lese, skrive og utføre. 204 00:09:35,740 --> 00:09:36,420 >> ANDI PENG: Ja, akkurat. 205 00:09:36,420 --> 00:09:37,840 Du kan lese skrive og utføre. 206 00:09:37,840 --> 00:09:40,790 Fordi alle tre av disse tegn er til stede. 207 00:09:40,790 --> 00:09:44,370 Så hvis vi går videre og snakke om dette i form av bits, 208 00:09:44,370 --> 00:09:48,490 den rwx kan også være representert som 700. 209 00:09:48,490 --> 00:09:53,370 Fordi som du kan se i hvilken som helst slags fil katalog tillatelse, 210 00:09:53,370 --> 00:09:54,320 det er tre triader. 211 00:09:54,320 --> 00:09:58,060 >> I dette tilfelle, bare det første triaden har noe der. 212 00:09:58,060 --> 00:10:04,050 Så i dette tilfellet er r 4, w er 2, og x er en. 213 00:10:04,050 --> 00:10:05,860 Hvis du legger dem sammen, er det 7. 214 00:10:05,860 --> 00:10:08,730 >> Og så hvis du konvertere det til binær, det er 700. 215 00:10:08,730 --> 00:10:10,310 Fordi 7 er den første triade. 216 00:10:10,310 --> 00:10:12,760 0, det er ingenting stede i det andre triade. 217 00:10:12,760 --> 00:10:15,850 Og så er det ingenting stede i den tredje triaden, så det er en annen 0. 218 00:10:15,850 --> 00:10:22,520 >> Så på samme måte, en haug med treklanger kan representeres bare i biter, bare 219 00:10:22,520 --> 00:10:23,600 i binær også. 220 00:10:23,600 --> 00:10:29,920 Så 700 betyr akkurat det samme som rwx ------ i form av tillatelser. 221 00:10:29,920 --> 00:10:32,590 Alle klare på det? 222 00:10:32,590 --> 00:10:33,090 Kjølig. 223 00:10:33,090 --> 00:10:40,290 Og så chmod 111 ville gi som rettigheter til filen? 224 00:10:40,290 --> 00:10:42,600 Gi dere et par sekunder for å konvertere denne. 225 00:10:42,600 --> 00:10:51,140 226 00:10:51,140 --> 00:10:53,250 Husk, det første triaden er for brukeren. 227 00:10:53,250 --> 00:10:56,320 Den andre triaden er for konsernet. 228 00:10:56,320 --> 00:10:59,450 Og den tredje triaden er for alle. 229 00:10:59,450 --> 00:11:03,680 >> Og så chmod 111 ville gi noe type tillatelser og til hvem? 230 00:11:03,680 --> 00:11:06,520 231 00:11:06,520 --> 00:11:09,020 Ta et par sekunder for å tenke på det og komme tilbake. 232 00:11:09,020 --> 00:11:19,790 233 00:11:19,790 --> 00:11:20,910 Yeah. 234 00:11:20,910 --> 00:11:22,920 >> PUBLIKUM: Så alle kan kjøre den. 235 00:11:22,920 --> 00:11:23,920 ANDI PENG: Yup, akkurat. 236 00:11:23,920 --> 00:11:25,544 PUBLIKUM: Men ingen kan lese eller skrive. 237 00:11:25,544 --> 00:11:27,910 ANDI PENG: Og gjerne å forklare for alle 238 00:11:27,910 --> 00:11:29,860 hvordan du kom til den konklusjonen. 239 00:11:29,860 --> 00:11:34,290 >> PUBLIKUM: Vel, for brukeren, gruppe, og verden, det er alle ett, 240 00:11:34,290 --> 00:11:35,700 som er koden for kjørbare. 241 00:11:35,700 --> 00:11:37,070 >> ANDI PENG: Ja, akkurat. 242 00:11:37,070 --> 00:11:42,320 Så en, i dette tilfellet, er alt vi vet at det er kjørbar kode. 243 00:11:42,320 --> 00:11:45,280 Fordi lesing er 4. 244 00:11:45,280 --> 00:11:45,990 Skriving er 2. 245 00:11:45,990 --> 00:11:47,230 Og den kjør er en. 246 00:11:47,230 --> 00:11:51,580 Så er alle tre triader er en, at betyr at til verden, for brukeren, 247 00:11:51,580 --> 00:11:54,680 og til gruppen, de er alle kjørbare. 248 00:11:54,680 --> 00:11:56,170 >> Alle gode med det? 249 00:11:56,170 --> 00:11:56,940 OK. 250 00:11:56,940 --> 00:11:59,180 Og så den andre veien at vi faktisk kan 251 00:11:59,180 --> 00:12:01,220 skriver dette også er du bare kunne gjøre chmod 252 00:12:01,220 --> 00:12:05,050 et pluss x. et betyr alt eller alle. 253 00:12:05,050 --> 00:12:07,060 Pluss betyr å gi tillatelser til. 254 00:12:07,060 --> 00:12:09,112 Og så x betyr kjørbar. 255 00:12:09,112 --> 00:12:11,070 Så det er to kommandoer er faktisk identiske. 256 00:12:11,070 --> 00:12:12,903 Så hvis du vil kjøre dette i terminalen, 257 00:12:12,903 --> 00:12:15,830 du gjør chmod 111, navn på katalog eller filen. 258 00:12:15,830 --> 00:12:18,520 Eller du kan gjøre chmod et pluss x, Navn på din katalog filen. 259 00:12:18,520 --> 00:12:22,150 Samme, bare en enklere måte, kanskje, for noen til å representere eller endring 260 00:12:22,150 --> 00:12:24,280 filrettigheter. 261 00:12:24,280 --> 00:12:28,806 >> Hver og en OK med chmod før vi går videre? 262 00:12:28,806 --> 00:12:31,700 Kjølig. 263 00:12:31,700 --> 00:12:35,336 Så nå skal vi dra inn en noen lysbilder av svært abstrakte begreper 264 00:12:35,336 --> 00:12:37,210 at jeg er ganske mye kommer til vind gjennom. 265 00:12:37,210 --> 00:12:39,530 Og det er helt OK hvis du forstår ikke alt. 266 00:12:39,530 --> 00:12:42,330 >> Selv nå, jeg fortsatt ikke egentlig forstår alt helt. 267 00:12:42,330 --> 00:12:44,640 Men det er mer for å få øverste nivå forståelse 268 00:12:44,640 --> 00:12:47,280 av hvordan noen av disse tingene fungerer. 269 00:12:47,280 --> 00:12:50,490 Så vi kommer til å snakke raskt om TCP / IP, 270 00:12:50,490 --> 00:12:54,880 som er like Transmission Control Protokoll slash Internet Protocol. 271 00:12:54,880 --> 00:12:57,135 >> Husker fra foredraget David, fikk han lære deg 272 00:12:57,135 --> 00:13:00,700 eksempelet hvor han hadde passet notene i en konvolutt 273 00:13:00,700 --> 00:13:02,790 opp til å like toppen av forelesningssalen? 274 00:13:02,790 --> 00:13:06,990 Så i loven skolen auditorium David demonstrerte i hovedsak 275 00:13:06,990 --> 00:13:10,370 hvordan TCP / IP fungerer i den forstand at alt det 276 00:13:10,370 --> 00:13:14,300 er er et virkemiddel for å sikre at data har vært levert over en server 277 00:13:14,300 --> 00:13:15,870 eller på internett. 278 00:13:15,870 --> 00:13:22,270 Så i eksempelet på konvolutten og meldingen, brukeren på slutten 279 00:13:22,270 --> 00:13:26,410 kunne se at, åh, jeg trengte å motta fire pakker med informasjon. 280 00:13:26,410 --> 00:13:28,096 >> Men jeg faktisk bare fått tre. 281 00:13:28,096 --> 00:13:29,470 Det betyr at jeg må være mangler en. 282 00:13:29,470 --> 00:13:30,760 Og en ikke ble levert. 283 00:13:30,760 --> 00:13:33,990 Og så TCP / IP på internett, gjennom datamaskinen og serveren, 284 00:13:33,990 --> 00:13:35,500 gjør akkurat det samme. 285 00:13:35,500 --> 00:13:38,900 Alt den gjør er å angi et rammeverk der en tapt data 286 00:13:38,900 --> 00:13:41,100 pakker kan sendes på nytt og mottatt. 287 00:13:41,100 --> 00:13:44,760 >> Som på internett når du prøver for å få tilgang til filer på nettet eller sende filer 288 00:13:44,760 --> 00:13:48,210 til din venn eller se på web nettlesere, tusenvis 289 00:13:48,210 --> 00:13:50,440 av milliarder og milliarder byte informasjon 290 00:13:50,440 --> 00:13:52,840 overføres per millisekund. 291 00:13:52,840 --> 00:13:54,560 Og det er veldig, veldig forvirrende. 292 00:13:54,560 --> 00:13:57,110 Og det er veldig vanskelig å faktisk vet hva som er blitt sendt 293 00:13:57,110 --> 00:13:58,270 og hva som ikke er blitt sendt. 294 00:13:58,270 --> 00:14:02,210 >> Og så TCP / IP bare spesifiserer en sammenhengende rammeverk 295 00:14:02,210 --> 00:14:04,115 der nett leseren og serveren din 296 00:14:04,115 --> 00:14:05,990 kan slags kommunisere med hverandre, bare 297 00:14:05,990 --> 00:14:08,550 sørge for at pakkene er alle her, og ingenting er tapt 298 00:14:08,550 --> 00:14:12,700 og alle data som du etterspør faktisk viser riktig. 299 00:14:12,700 --> 00:14:16,350 Alle OK på akkurat det veldig kort høyt nivå forstå? 300 00:14:16,350 --> 00:14:18,510 Kjølig. 301 00:14:18,510 --> 00:14:21,550 >> Så da vi kommer til å flytte til å snakke om HTTP, som 302 00:14:21,550 --> 00:14:24,610 er bare Hypertext Transfer Protocol. 303 00:14:24,610 --> 00:14:32,550 HTTP, er alt det er uansett en side eller filen er tilgjengelig på nettstedet ditt, 304 00:14:32,550 --> 00:14:35,810 serveren returnerer en HTTP statuskode som svar 305 00:14:35,810 --> 00:14:39,869 på forespørselen å sørge for at heller, oh, gikk denne forespørselen gjennom. 306 00:14:39,869 --> 00:14:41,410 Og alt er å vise riktig. 307 00:14:41,410 --> 00:14:43,500 Eller, oh, nei, 404. 308 00:14:43,500 --> 00:14:44,730 Noe gikk galt. 309 00:14:44,730 --> 00:14:45,940 Åh, jeg kan ikke vise. 310 00:14:45,940 --> 00:14:50,370 >> Alt som er er at uansett hva du prøver å få tilgang, 311 00:14:50,370 --> 00:14:55,160 bruke som brukeren prøver å få tilgang til, på internet-- bare å sørge for 312 00:14:55,160 --> 00:15:00,080 at du enten har lykkes vist hva det var eller ikke 313 00:15:00,080 --> 00:15:02,080 hell vist hva det var. 314 00:15:02,080 --> 00:15:05,120 Og så HTTP status kode gir akkurat deg 315 00:15:05,120 --> 00:15:09,910 et middel for å være i stand til å vite hvorvidt vidt det var vellykket eller ikke. 316 00:15:09,910 --> 00:15:13,440 Slik at for eksempel et eksempel forespørsel. 317 00:15:13,440 --> 00:15:16,050 >> Du kan se her er det vanligvis vanligvis fire linjer. 318 00:15:16,050 --> 00:15:22,530 Vi har en GET HTTP 1.1, som er like metoden forespørsel URL, protokollen 319 00:15:22,530 --> 00:15:24,490 versjon, navnefeltet, og feltverdi. 320 00:15:24,490 --> 00:15:26,810 Så ingen grunn til å fullstendig memorere noe her. 321 00:15:26,810 --> 00:15:29,960 Bare slags lest selv med hvordan disse ser ut. 322 00:15:29,960 --> 00:15:34,060 >> I dette eksempel er fremgangsmåten forespørselen URL er nettopp hva forespørsel 323 00:15:34,060 --> 00:15:35,620 du sender til serveren. 324 00:15:35,620 --> 00:15:40,710 Liker, hey, server, jeg virkelig ønsker å tilgang yadda, yadda, yadda, HTTP side. 325 00:15:40,710 --> 00:15:43,785 Protokollen versjonen er bare hva versjon verten eller serveren din 326 00:15:43,785 --> 00:15:45,490 bruker for å få tilgang til informasjon. 327 00:15:45,490 --> 00:15:49,510 >> Feltnavnet er nettstedet eller URL som du prøver å få tilgang, 328 00:15:49,510 --> 00:15:52,610 i dette tilfellet, www.apple.com. 329 00:15:52,610 --> 00:15:56,110 Og feltverdien er bare typisk navn, verdi. 330 00:15:56,110 --> 00:15:59,540 Og det kan være noen form for kombinasjon bokstaver eller tall eller hva. 331 00:15:59,540 --> 00:16:02,890 >> Så en typisk forespørsel, så hva maskinen faktisk 332 00:16:02,890 --> 00:16:08,400 sender til serveren som sier hei, du vet hva jeg trenger dette vises, 333 00:16:08,400 --> 00:16:13,000 det er den slags forespørsel at de faktisk mottar. 334 00:16:13,000 --> 00:16:16,760 Et eksempel respons på hva server ville sende tilbake til deg 335 00:16:16,760 --> 00:16:20,320 ville være ganske mye det samme, bortsett fra med en statuskode på toppen. 336 00:16:20,320 --> 00:16:24,550 Så 200, 2 0 0 er alltid statuskoden for OK. 337 00:16:24,550 --> 00:16:26,050 Liker, OK, gikk denne forespørselen gjennom. 338 00:16:26,050 --> 00:16:27,980 Du var i stand til å få tilgang alt riktig. 339 00:16:27,980 --> 00:16:28,810 Livet er godt. 340 00:16:28,810 --> 00:16:29,990 Livet er fint. 341 00:16:29,990 --> 00:16:32,150 Alt er helt bra. 342 00:16:32,150 --> 00:16:36,050 >> Og så dette bare forteller nettleseren din og serveren din, hey, alt er bra. 343 00:16:36,050 --> 00:16:37,470 Jeg fikk all den informasjonen jeg trenger. 344 00:16:37,470 --> 00:16:39,160 Kjølig. 345 00:16:39,160 --> 00:16:41,790 Men problemet er noen ganger problemer kommer opp 346 00:16:41,790 --> 00:16:46,850 når du have-- vare jeg tror Jeg snakket om duplikater. 347 00:16:46,850 --> 00:16:48,870 Du har mindre gode svar. 348 00:16:48,870 --> 00:16:52,660 >> Så for eksempel 404 er den Page Not Found. 349 00:16:52,660 --> 00:16:54,897 Du har noen ganger en Forbidden tilgang. 350 00:16:54,897 --> 00:16:56,730 Du har diverse andre statuskoder som jeg er 351 00:16:56,730 --> 00:16:59,688 sikker på at du har alle sett når du er prøver å gjøre undersøkelser på internett. 352 00:16:59,688 --> 00:17:02,300 Og nettleseren din gir deg den, nei, kan ikke få tilgang. 353 00:17:02,300 --> 00:17:04,190 Og du er som, vel, crap. 354 00:17:04,190 --> 00:17:09,260 >> Så bare ganske mye, det er noen ganske vanlige statuskoder. 355 00:17:09,260 --> 00:17:14,109 Kanskje bli kjent med hvilke som de er. 356 00:17:14,109 --> 00:17:16,000 Det morsomste som Jeg tror jeg har hørt 357 00:17:16,000 --> 00:17:18,040 of-- hvis du tilfeldigvis let opp alle av dem 358 00:17:18,040 --> 00:17:21,490 online, for noen grunn det er faktisk en reell statuskode 359 00:17:21,490 --> 00:17:26,619 kalt 418 Jeg er en tekanne. 360 00:17:26,619 --> 00:17:29,610 >> Jeg googlet der Opprinnelsen til dette var fra. 361 00:17:29,610 --> 00:17:33,150 Og tilsynelatende en April Fools ' Dag et par tiår siden, 362 00:17:33,150 --> 00:17:36,415 noen trodde det ville være morsomt å opprette en ny statuskode som heter 418 363 00:17:36,415 --> 00:17:37,380 Jeg er en tekanne. 364 00:17:37,380 --> 00:17:40,760 Legitimt, navnet på denne kode kalles jeg er en tekanne. 365 00:17:40,760 --> 00:17:43,670 >> Jeg glemmer hvilken side du må gå til å faktisk gjøre dette displayet. 366 00:17:43,670 --> 00:17:47,955 Men tydeligvis, kan du faktisk få en statuskode på jeg er 367 00:17:47,955 --> 00:17:51,400 en tekanne eller annen måte gjennom å gjøre noe. 368 00:17:51,400 --> 00:17:54,480 Så det er hundrevis og hundrevis av statuskoder. 369 00:17:54,480 --> 00:17:56,730 >> Noen av dem gjør mer forstand enn andre. 370 00:17:56,730 --> 00:18:01,430 Men stort sett bare lest selv med de vanligste. 371 00:18:01,430 --> 00:18:04,090 Den forespurte enhet kroppen er kort og stout, tilsynelatende. 372 00:18:04,090 --> 00:18:07,990 >> Så noen ganger er det mer skremmende feil enn jeg er en tekanne. 373 00:18:07,990 --> 00:18:11,210 Men dette er en som jeg antar du slags håper å treffe. 374 00:18:11,210 --> 00:18:14,130 Men jeg tror ikke du vil. 375 00:18:14,130 --> 00:18:17,260 Alle gode på nettopp status koder, forespørsler, prosesser, making 376 00:18:17,260 --> 00:18:19,155 at informasjonen blir levert på riktig måte? 377 00:18:19,155 --> 00:18:22,270 378 00:18:22,270 --> 00:18:26,120 >> Så nå skal vi overgangen inn av en morsom del av seksjonen i dag, 379 00:18:26,120 --> 00:18:28,500 der vi snakker litt om HTML. 380 00:18:28,500 --> 00:18:32,580 HTML, alt det er Hypertext Markup Language. 381 00:18:32,580 --> 00:18:35,160 Det er bare standard språk du bruker til å lage alle web 382 00:18:35,160 --> 00:18:36,690 sider på internett. 383 00:18:36,690 --> 00:18:39,560 >> Så hvilken som helst webside, hva er din favoritt nettside? 384 00:18:39,560 --> 00:18:40,855 Hva er din favoritt nettside? 385 00:18:40,855 --> 00:18:41,771 >> PUBLIKUM: [uhørlig]. 386 00:18:41,771 --> 00:18:42,270 387 00:18:42,270 --> 00:18:43,090 ANDI PENG: Sorry? 388 00:18:43,090 --> 00:18:43,980 >> PUBLIKUM: Tumblr. 389 00:18:43,980 --> 00:18:44,730 >> ANDI PENG: Tumblr. 390 00:18:44,730 --> 00:18:46,800 Så Tumblr er skrevet i HTML. 391 00:18:46,800 --> 00:18:50,700 Og så vil vi faktisk gå gjennom og leke seg med noen av disse tingene 392 00:18:50,700 --> 00:18:51,980 senere. 393 00:18:51,980 --> 00:18:54,980 Stort sett alt du trenger å lære, å vite, 394 00:18:54,980 --> 00:18:58,540 å skrive HTML du kan sannsynligvis bare Google på internett. 395 00:18:58,540 --> 00:19:04,490 >> HTML, er det ikke et program som C der du kan opprette variabler og gjøre 396 00:19:04,490 --> 00:19:05,600 kule ting med det. 397 00:19:05,600 --> 00:19:08,747 Det er mer av bare, oh, dette er hvordan jeg vil at ting skal vises på min hjemmeside. 398 00:19:08,747 --> 00:19:10,080 Og jeg skal bare sette den i. 399 00:19:10,080 --> 00:19:12,160 Og det kommer til å style det. 400 00:19:12,160 --> 00:19:15,650 >> Så HTML, på en måte, er det akkurat som en formatering eller mal språk. 401 00:19:15,650 --> 00:19:16,680 Det er mye enklere. 402 00:19:16,680 --> 00:19:19,030 Det er mye lettere å lære, mye lettere å skrive i 403 00:19:19,030 --> 00:19:21,450 enn vanlig programmering språk, veldig lett, 404 00:19:21,450 --> 00:19:24,310 svært brukervennlig tilgjengelig og vennlig. 405 00:19:24,310 --> 00:19:29,040 >> Så vi faktisk kommer til å spille rundt, skriver våre egne sider i dag. 406 00:19:29,040 --> 00:19:32,900 Men før vi begynner, jeg bare ønsker å gå over noen korte beste praksis. 407 00:19:32,900 --> 00:19:35,660 Fordi HTML er en så enkel språk og fordi selv 408 00:19:35,660 --> 00:19:39,012 hvis du gjør et par ting som er galt, det noen ganger ikke kan merke, 409 00:19:39,012 --> 00:19:41,970 vi vil være sikker på at vi er faktisk å følge våre beste praksis 410 00:19:41,970 --> 00:19:44,490 å sørge for at ting som kan være å gå rundt, men 411 00:19:44,490 --> 00:19:49,660 er ikke alltid kommer til å ikke gå rett sørge for at de er minimert. 412 00:19:49,660 --> 00:19:53,570 >> Så ganske mye, sørg avslutt alle kodene dine 413 00:19:53,570 --> 00:19:54,737 når du skriver i HTML. 414 00:19:54,737 --> 00:19:56,486 Hvis du åpner en kroppen, sørg for at du er 415 00:19:56,486 --> 00:19:58,015 lukke den med en kropp et sted. 416 00:19:58,015 --> 00:20:00,720 Du ønsker å være sikker på at din web siden er validert ved hjelp 417 00:20:00,720 --> 00:20:02,070 det som kalles W3 Validator. 418 00:20:02,070 --> 00:20:05,460 Du kan bare Google som online, og det er en link til det. 419 00:20:05,460 --> 00:20:07,820 >> Og så du vil egen HTML, som 420 00:20:07,820 --> 00:20:13,060 er kodespråk fra din stil, som er den CSS språket som David 421 00:20:13,060 --> 00:20:17,510 demonstrert at vi er også kommer til å spille litt med foredrag. 422 00:20:17,510 --> 00:20:19,120 Kjølig. 423 00:20:19,120 --> 00:20:23,500 Så når du ønsker å kjøre HTML på CS50 apparatet, 424 00:20:23,500 --> 00:20:26,240 vi kommer til å kjøre en Programmet heter apache, 425 00:20:26,240 --> 00:20:29,810 som alt er det bare en innebygd webserveren at alle i CS50 426 00:20:29,810 --> 00:20:31,410 har tilgang til. 427 00:20:31,410 --> 00:20:35,700 Vi kaller det apache50 bare fordi vi liker å kalle alt 50 i CS50. 428 00:20:35,700 --> 00:20:39,610 >> Så den måten at du starter CS50 web Serveren er ved å skrive på din kommando 429 00:20:39,610 --> 00:20:42,860 linje apache50 starte prikk. 430 00:20:42,860 --> 00:20:46,665 Og hvis du ønsker å avslutte den når som helst tid, trenger du apache50 ende ingen prikk. 431 00:20:46,665 --> 00:20:47,910 Og du bare trykke på Enter. 432 00:20:47,910 --> 00:20:50,810 Og det bør være på vei opp her snart. 433 00:20:50,810 --> 00:20:53,630 434 00:20:53,630 --> 00:20:54,130 Jepp. 435 00:20:54,130 --> 00:20:58,110 Så jeg skal bare raskt gå over et eksempel på en virkelig kort nettside. 436 00:20:58,110 --> 00:21:00,280 Og vi kommer til å tilbringe som 10, 15 minutter å spille 437 00:21:00,280 --> 00:21:04,008 rundt å skrive våre egne nettsider. 438 00:21:04,008 --> 00:21:05,320 OK. 439 00:21:05,320 --> 00:21:07,841 Så her i IDE-- alle kan se det? 440 00:21:07,841 --> 00:21:08,340 Ikke egentlig. 441 00:21:08,340 --> 00:21:11,400 Her vil jeg zoome inn. 442 00:21:11,400 --> 00:21:15,850 >> Jeg har nettopp fått denne korte malen her med ingenting faktisk i det. 443 00:21:15,850 --> 00:21:20,660 Vi kommer bare til å raskt skrive en HTML-program der vi bare 444 00:21:20,660 --> 00:21:22,050 si hei til verden. 445 00:21:22,050 --> 00:21:24,970 Så samme som i C, nå er vi bare kommer til å gjøre det i HTML. 446 00:21:24,970 --> 00:21:28,250 Ønsker noen å faktisk bare prøve å gi meg det første du 447 00:21:28,250 --> 00:21:31,870 måtte sette i et HTML-dokument? 448 00:21:31,870 --> 00:21:32,850 Yeah. 449 00:21:32,850 --> 00:21:35,965 >> PUBLIKUM: Konsollene, den [uhørbart]. 450 00:21:35,965 --> 00:21:36,590 ANDI PENG: Jepp. 451 00:21:36,590 --> 00:21:47,200 452 00:21:47,200 --> 00:21:50,930 Så noe som er veldig unikt for HTML som vi vanligvis tradisjonelt 453 00:21:50,930 --> 00:21:56,080 ikke støter på andre kommando linje nivå programmeringsspråk 454 00:21:56,080 --> 00:21:59,890 er at vi faktisk å spesifisere filtypen 455 00:21:59,890 --> 00:22:01,987 at dette kommer til å være på toppen av vår kode. 456 00:22:01,987 --> 00:22:04,570 Så i denne instance-- tror jeg som er den riktige kommandoen, ikke sant? 457 00:22:04,570 --> 00:22:10,050 458 00:22:10,050 --> 00:22:10,550 Jepp. 459 00:22:10,550 --> 00:22:14,860 På toppen, du bare ønsker å inkludere bang DOCTYPE html i parentes bare 460 00:22:14,860 --> 00:22:17,670 å fortelle datamaskinen, hey, ser ut. 461 00:22:17,670 --> 00:22:20,050 Og HTML-dokument kommer. 462 00:22:20,050 --> 00:22:22,250 Og deretter hvordan vi ønsker å starte vår fil? 463 00:22:22,250 --> 00:22:25,540 Hvis vi ønsker bare å si hei, har en nettside som sier hei til verden, 464 00:22:25,540 --> 00:22:26,915 hvordan går vi om å bygge dette? 465 00:22:26,915 --> 00:22:32,910 466 00:22:32,910 --> 00:22:35,300 >> Egentlig, la oss slå til Google. 467 00:22:35,300 --> 00:22:36,910 Og vi kan faktisk gjøre dette. 468 00:22:36,910 --> 00:22:43,170 469 00:22:43,170 --> 00:22:43,670 Jepp. 470 00:22:43,670 --> 00:22:44,840 Det vi går. 471 00:22:44,840 --> 00:22:47,630 Så HTML. 472 00:22:47,630 --> 00:22:52,390 Som du ser, er faktisk min nettleser automatisk styling dette for meg. 473 00:22:52,390 --> 00:22:56,010 >> Samme som i C, når du skape en åpen klammeparentes, 474 00:22:56,010 --> 00:22:59,020 nettleseren din automatisk legger i en tett krøllete brace. 475 00:22:59,020 --> 00:23:02,210 Heldigvis elsker vår IDE til gjøre dette for oss også. 476 00:23:02,210 --> 00:23:05,490 Så vi kan nå slags form begynnelsen på en tag, 477 00:23:05,490 --> 00:23:09,139 og det kommer til å alltid fortelle oss til Husk å skrive på slutten av koden. 478 00:23:09,139 --> 00:23:10,680 Jeg tror dette må være aktivert. 479 00:23:10,680 --> 00:23:15,510 480 00:23:15,510 --> 00:23:21,760 Og så ønsker vi å legge til, alltid, et hode som er tittelen. 481 00:23:21,760 --> 00:23:25,270 482 00:23:25,270 --> 00:23:29,160 Vi vil bare kanskje kalle Dette hei, og deretter kroppen. 483 00:23:29,160 --> 00:23:34,010 484 00:23:34,010 --> 00:23:36,310 >> Og der du går. 485 00:23:36,310 --> 00:23:39,650 Det er faktisk vår HTML-dokument. 486 00:23:39,650 --> 00:23:45,030 Slik at en hvilken som helst måte som HTML-dokumentet er alltid stylet in-- samme 487 00:23:45,030 --> 00:23:46,720 med int main annullert. 488 00:23:46,720 --> 00:23:49,600 Du alltid vil ha HTML en åpen og tett tag 489 00:23:49,600 --> 00:23:52,100 på toppen og bunnen av koden din. 490 00:23:52,100 --> 00:23:56,900 >> Du ønsker å ha et hode inni som inneholder tittelen, bare hva 491 00:23:56,900 --> 00:24:01,430 kommer til å vise kategorien av nett side, og deretter en kropp inni der 492 00:24:01,430 --> 00:24:04,120 faktisk vil vise innholdet av hva du ønsker å gjøre. 493 00:24:04,120 --> 00:24:08,220 Så hvis du ønsket å faktisk kjøre dette, kommer jeg til å zoome ut igjen. 494 00:24:08,220 --> 00:24:12,740 Du kan faktisk begynne apache50 starte prikk. 495 00:24:12,740 --> 00:24:15,650 496 00:24:15,650 --> 00:24:16,150 Kjølig. 497 00:24:16,150 --> 00:24:18,980 Og slik som du kan se, nå denne linken har poppet opp. 498 00:24:18,980 --> 00:24:21,940 Det sier området er nå tilgjengelig på noen link nedenfor. 499 00:24:21,940 --> 00:24:25,910 Slik at alle våre IDE har done-- ikke IDE, sorry-- yeah, 500 00:24:25,910 --> 00:24:33,280 vår IDE har gjort er å lage en web- adresse hvorpå alle våre web-sider 501 00:24:33,280 --> 00:24:35,407 kan nås på serveren. 502 00:24:35,407 --> 00:24:36,490 Så la oss ta en titt her. 503 00:24:36,490 --> 00:24:40,240 >> La oss klikke på dette, gå til hello.html. 504 00:24:40,240 --> 00:24:42,895 Og du ser en veldig enkel nettside for hello world. 505 00:24:42,895 --> 00:24:46,477 506 00:24:46,477 --> 00:24:47,420 OK. 507 00:24:47,420 --> 00:24:50,513 Vi blir faktisk kommer til å like har everyone-- ja, hva skjer? 508 00:24:50,513 --> 00:24:52,353 >> PUBLIKUM: Jeg har en grunnleggende spørsmål. 509 00:24:52,353 --> 00:24:52,978 ANDI PENG: Yup. 510 00:24:52,978 --> 00:24:58,064 PUBLIKUM: Hvordan lagrer du filen som en HTML? 511 00:24:58,064 --> 00:24:58,730 ANDI PENG: Yeah. 512 00:24:58,730 --> 00:25:02,960 513 00:25:02,960 --> 00:25:10,820 Så hvis jeg skulle lage en ny fil, hvis jeg gjør New File, Untittle, hvis jeg gjør det, 514 00:25:10,820 --> 00:25:14,390 section.html, boom, det er alt jeg har å gjøre. 515 00:25:14,390 --> 00:25:15,363 >> PUBLIKUM: [uhørbart]? 516 00:25:15,363 --> 00:25:15,946 ANDI PENG: No. 517 00:25:15,946 --> 00:25:16,660 PUBLIKUM: [uhørlig]. 518 00:25:16,660 --> 00:25:17,240 ANDI PENG: No. 519 00:25:17,240 --> 00:25:18,156 PUBLIKUM: [uhørlig]. 520 00:25:18,156 --> 00:25:19,110 ANDI PENG: Yeah. 521 00:25:19,110 --> 00:25:24,300 Ganske mye, utvidelse på filen som er inni IDE, 522 00:25:24,300 --> 00:25:27,840 som forteller datamaskinen, som forteller leseren, hei, se opp. 523 00:25:27,840 --> 00:25:30,480 Dette kommer til å bli kode skrevet i dette språket. 524 00:25:30,480 --> 00:25:34,240 Så for eksempel i Microsoft Word, hva gjør alle Word-dokumenter 525 00:25:34,240 --> 00:25:37,070 slutte med, hva forlengelse? 526 00:25:37,070 --> 00:25:39,830 .doc eller .docx, ikke sant? 527 00:25:39,830 --> 00:25:42,299 >> Alle som ikke spesifiserer til operativsystemet, hey, 528 00:25:42,299 --> 00:25:43,840 du har et Word-dokument som kommer opp. 529 00:25:43,840 --> 00:25:44,940 Åpne den med Word. 530 00:25:44,940 --> 00:25:46,955 Samme med PDF-filer. 531 00:25:46,955 --> 00:25:49,650 Det vet, oh, jeg trenger å åpne filen 532 00:25:49,650 --> 00:25:52,020 med Adobe Reader eller Adobe Acrobat. 533 00:25:52,020 --> 00:25:56,130 >> Og så utvidelser betjene samme måte som i datamaskinen. 534 00:25:56,130 --> 00:26:00,750 Hvis du angir din kodesett å bli navngitt HTML, så den vet, 535 00:26:00,750 --> 00:26:01,880 oh, du har HTML-kode. 536 00:26:01,880 --> 00:26:04,890 Jeg kommer til å behandle det som html-kode. 537 00:26:04,890 --> 00:26:06,600 Så det er super smart i den forstand. 538 00:26:06,600 --> 00:26:11,360 539 00:26:11,360 --> 00:26:18,730 >> Så alle sammen, la oss ta 10 minutter og bare lage våre egne nettsider. 540 00:26:18,730 --> 00:26:21,020 La oss legge til i den vakre ting. 541 00:26:21,020 --> 00:26:23,440 Føl deg fri til å si hva du vil. 542 00:26:23,440 --> 00:26:27,890 Jeg vil bare være sikker på at alles servere kjører riktig 543 00:26:27,890 --> 00:26:31,220 før vi frigjøre deg inn i PSet. 544 00:26:31,220 --> 00:26:33,490 Fordi hvis serverne ikke kjøre for PSet, 545 00:26:33,490 --> 00:26:34,847 som vil være virkelig, virkelig ille. 546 00:26:34,847 --> 00:27:17,380 547 00:27:17,380 --> 00:27:21,093 >> Jeg skal bare flyte rundt og se hva alle jobber med. 548 00:27:21,093 --> 00:27:26,965 549 00:27:26,965 --> 00:27:27,590 Hvordan går det? 550 00:27:27,590 --> 00:27:29,048 >> PUBLIKUM: Jeg bare snudde på min datamaskin. 551 00:27:29,048 --> 00:27:29,923 >> ANDI PENG: Det er OK. 552 00:27:29,923 --> 00:27:41,200 553 00:27:41,200 --> 00:27:42,390 >> PUBLIKUM: [uhørlig]. 554 00:27:42,390 --> 00:27:44,284 >> ANDI PENG: Bare IDE. 555 00:27:44,284 --> 00:27:44,784 Yeah. 556 00:27:44,784 --> 00:27:54,040 557 00:27:54,040 --> 00:27:55,910 >> PUBLIKUM: [uhørlig]. 558 00:27:55,910 --> 00:27:57,590 >> ANDI PENG: Det er OK. 559 00:27:57,590 --> 00:27:59,491 >> PUBLIKUM: [uhørlig]. 560 00:27:59,491 --> 00:28:00,490 ANDI PENG: Helt greit. 561 00:28:00,490 --> 00:28:47,705 562 00:28:47,705 --> 00:28:51,530 Er alle tilgang deres web server OK? 563 00:28:51,530 --> 00:28:52,970 Er apache50 kjører OK? 564 00:28:52,970 --> 00:28:54,700 Jeg tror at i noen av de andre delene, vi 565 00:28:54,700 --> 00:28:58,790 hatt problemer med folk ikke å kunne få tilgang til serveren. 566 00:28:58,790 --> 00:28:59,290 Yeah. 567 00:28:59,290 --> 00:29:05,764 Så du bare kjøre apache50 plass starter plass periode. 568 00:29:05,764 --> 00:29:06,680 PUBLIKUM: [uhørlig]. 569 00:29:06,680 --> 00:29:07,610 ANDI PENG: Yup. 570 00:29:07,610 --> 00:29:08,294 God? 571 00:29:08,294 --> 00:29:09,210 >> PUBLIKUM: [uhørlig]. 572 00:29:09,210 --> 00:29:12,530 573 00:29:12,530 --> 00:29:13,350 >> ANDI PENG: Oh, OK. 574 00:29:13,350 --> 00:29:14,808 Så du skal ha en plass. 575 00:29:14,808 --> 00:29:15,425 Så apache50-- 576 00:29:15,425 --> 00:29:16,115 >> PUBLIKUM: jeg gjorde. 577 00:29:16,115 --> 00:29:17,661 >> ANDI PENG: --start plass. 578 00:29:17,661 --> 00:29:18,660 PUBLIKUM: Å, plass prikk. 579 00:29:18,660 --> 00:29:20,110 ANDI PENG: Yup, plass prikk. 580 00:29:20,110 --> 00:29:23,230 Det du går. 581 00:29:23,230 --> 00:29:25,490 Så da hvis du har en HTML-side opprettet, 582 00:29:25,490 --> 00:29:28,560 så kan du bare gå direkte til koblingen at det spesifiserer. 583 00:29:28,560 --> 00:29:30,539 Og du bør være i stand til å få tilgang til det. 584 00:29:30,539 --> 00:29:35,130 585 00:29:35,130 --> 00:29:37,876 >> Alle kunnet tilgang til sine nettsider OK? 586 00:29:37,876 --> 00:29:39,339 >> PUBLIKUM: [uhørlig]. 587 00:29:39,339 --> 00:29:40,380 ANDI PENG: Å, det er OK. 588 00:29:40,380 --> 00:29:43,551 589 00:29:43,551 --> 00:29:44,964 >> PUBLIKUM: [uhørlig]. 590 00:29:44,964 --> 00:29:45,630 ANDI PENG: Yeah. 591 00:29:45,630 --> 00:29:48,171 Jeg tror du faktisk kan åpne det innenfor din nettleser, nettleser 592 00:29:48,171 --> 00:29:49,955 og ikke bare din IDE nettleser. 593 00:29:49,955 --> 00:29:51,580 Ja, jeg tror hvis du kopierer og limer den. 594 00:29:51,580 --> 00:29:53,920 >> PUBLIKUM: Og så hvordan slår vi den av? 595 00:29:53,920 --> 00:29:54,590 [Uhørbart] 596 00:29:54,590 --> 00:29:58,720 >> ANDI PENG: Ja, gjør du apache50 stoppe uten punktum. 597 00:29:58,720 --> 00:29:59,220 Jepp. 598 00:29:59,220 --> 00:30:01,180 >> PUBLIKUM: [uhørlig]. 599 00:30:01,180 --> 00:30:02,768 >> ANDI PENG: Med ingen periode. 600 00:30:02,768 --> 00:30:04,051 Yeah. 601 00:30:04,051 --> 00:30:04,550 Det vi går. 602 00:30:04,550 --> 00:30:05,050 Jepp. 603 00:30:05,050 --> 00:30:08,480 604 00:30:08,480 --> 00:30:09,855 Vi skaper våre egne nettsider. 605 00:30:09,855 --> 00:30:10,646 >> PUBLIKUM: Oh, kult. 606 00:30:10,646 --> 00:30:13,396 607 00:30:13,396 --> 00:30:14,062 ANDI PENG: Yeah. 608 00:30:14,062 --> 00:30:20,484 609 00:30:20,484 --> 00:30:22,420 >> PUBLIKUM: Jeg har et spørsmål. 610 00:30:22,420 --> 00:30:25,294 Så apache 50-- 611 00:30:25,294 --> 00:30:26,731 >> ANDI PENG: 50, ja. 612 00:30:26,731 --> 00:30:28,168 >> PUBLIKUM: [uhørlig]. 613 00:30:28,168 --> 00:30:29,130 >> ANDI PENG: Hva? 614 00:30:29,130 --> 00:30:29,750 Det er merkelig. 615 00:30:29,750 --> 00:30:32,244 Se, det var litt av problemet som skjedde før. 616 00:30:32,244 --> 00:30:37,820 617 00:30:37,820 --> 00:30:38,730 OK. 618 00:30:38,730 --> 00:30:39,800 Se meg etter pkt. 619 00:30:39,800 --> 00:30:42,320 Fordi vi har noen problemer med serveren. 620 00:30:42,320 --> 00:30:44,325 >> Og du ønsker å gjøre Kontroller at serveren er 621 00:30:44,325 --> 00:30:45,700 kjører før du starter PSet. 622 00:30:45,700 --> 00:30:47,800 Fordi du kommer til å trenge det. 623 00:30:47,800 --> 00:30:48,300 Yeah. 624 00:30:48,300 --> 00:30:51,299 Er det noen andre som ikke har vært stand til å få deres server du skal begynne? 625 00:30:51,299 --> 00:31:12,410 626 00:31:12,410 --> 00:31:17,840 >> For de av dere som ønsker å legge til ekstra stil til websidene dine, 627 00:31:17,840 --> 00:31:20,450 vi kan faktisk gjøre hva David gjorde i foredraget også, 628 00:31:20,450 --> 00:31:24,070 som er å lage en ekstra stil ark, som er en prikk CSS, Cascading 629 00:31:24,070 --> 00:31:30,080 Style Sheet og faktisk bare legge det inn. 630 00:31:30,080 --> 00:31:33,550 Så for eksempel, jeg har nettopp opprettet ganske mye nesten nøyaktig samme 631 00:31:33,550 --> 00:31:37,180 David gjorde i forelesningen. 632 00:31:37,180 --> 00:31:39,220 Du kan stort sett bare gjøre kroppen. 633 00:31:39,220 --> 00:31:45,980 >> Du har det som kalles koder der du kan bruke på IDE uansett seksjon 634 00:31:45,980 --> 00:31:48,650 du ønsker innenfor ditt Selve til HTML-side. 635 00:31:48,650 --> 00:31:54,890 Så kroppen på siden, du kan gjøre tekst sluttar sentrum. 636 00:31:54,890 --> 00:31:58,110 Og så skal jeg kreativ en kode som heter topp inne 637 00:31:58,110 --> 00:32:01,860 som jeg ønsker disse tingene til skje, tildele en større pikselstørrelse 638 00:32:01,860 --> 00:32:03,104 for skriften. 639 00:32:03,104 --> 00:32:04,520 Jeg ønsker skriften vekt til å være fet. 640 00:32:04,520 --> 00:32:06,478 Og jeg vil fargen til være blå, bare vilkårlig 641 00:32:06,478 --> 00:32:08,570 verdier som jeg bestemte meg for å velge. 642 00:32:08,570 --> 00:32:10,870 Jeg kan lage en annen tag kalt midten. 643 00:32:10,870 --> 00:32:12,640 Skriftstørrelse, gjør det litt mindre. 644 00:32:12,640 --> 00:32:17,730 Og så kan jeg lage en annen tag kalt bunnen der jeg vil ha skriftstørrelsen 645 00:32:17,730 --> 00:32:20,900 å være enda mindre fortsatt. 646 00:32:20,900 --> 00:32:25,630 >> Og så ganske mye dette er bare eksempel av kildekoden eller kilde stilark 647 00:32:25,630 --> 00:32:27,400 at det er veldig enkelt å bare Google. 648 00:32:27,400 --> 00:32:31,560 Hvis du sier, oh, jeg vil ha min font å bli kursiv og mørk grønn, 649 00:32:31,560 --> 00:32:33,980 Du kan sikkert Google, og da vil den fortelle deg 650 00:32:33,980 --> 00:32:37,590 de riktige kodene eller IDer å lage. 651 00:32:37,590 --> 00:32:41,670 Og så den måten at du ville faktisk slags har dette i et HTML-dokument 652 00:32:41,670 --> 00:32:45,660 eller bruke det er alt du trenger å gjøre her er på hodet 653 00:32:45,660 --> 00:32:48,560 legge en link til stilarket. 654 00:32:48,560 --> 00:32:53,600 >> Så du kan bare koble href equals hva navnet på stilarket 655 00:32:53,600 --> 00:32:54,590 er. 656 00:32:54,590 --> 00:32:56,740 Og da forholdet er et stilark. 657 00:32:56,740 --> 00:33:00,700 Så i løpet av noen HTML-dokument, så lenge du tar med denne dot CSS arket, 658 00:33:00,700 --> 00:33:07,140 du bør være i stand til å få tilgang og har de egenskapene der. 659 00:33:07,140 --> 00:33:10,370 >> Så for eksempel, her har jeg bare skape et annet eksempel nettside. 660 00:33:10,370 --> 00:33:15,680 Dette er velkommen til CS50 seksjon Tirsdager fra 02:00 til 03:30 med meg. 661 00:33:15,680 --> 00:33:20,300 Og så har jeg lagt et nydelig bilde som vi potensielt skal kunne se. 662 00:33:20,300 --> 00:33:24,620 >> Så hvis du tar en titt her, hvis du går til style.html, 663 00:33:24,620 --> 00:33:26,310 vi laget en nettside med kattunger. 664 00:33:26,310 --> 00:33:29,420 Fordi kattunge er awesome. 665 00:33:29,420 --> 00:33:33,570 Så legger et bilde er bare img src link. 666 00:33:33,570 --> 00:33:36,260 667 00:33:36,260 --> 00:33:38,310 >> Ganske mye, hvis det er noen form for funksjon 668 00:33:38,310 --> 00:33:40,268 du ønsker å legge til din website-- så la oss si, 669 00:33:40,268 --> 00:33:43,290 du vil legge til en meny eller et søkefelt eller lignende 670 00:33:43,290 --> 00:33:46,450 en image-- bare Google hvordan du gjør det. 671 00:33:46,450 --> 00:33:48,277 Og du bare slenger i dette formatet. 672 00:33:48,277 --> 00:33:50,110 Og du kan bare pen mye bare legge det inn. 673 00:33:50,110 --> 00:33:52,670 Det er veldig, veldig lett. 674 00:33:52,670 --> 00:33:55,014 >> Vi skaper vår egen websider akkurat nå. 675 00:33:55,014 --> 00:33:55,680 Hvis du vil-- 676 00:33:55,680 --> 00:33:56,580 >> PUBLIKUM: [uhørbart] 677 00:33:56,580 --> 00:33:57,470 >> ANDI PENG: Sorry? 678 00:33:57,470 --> 00:33:59,310 >> PUBLIKUM: [uhørlig]. 679 00:33:59,310 --> 00:34:01,340 >> ANDI PENG: Oh, det div er bare en divisjon 680 00:34:01,340 --> 00:34:04,370 forteller meg at, åh, jeg har en viss seksjon kalt 681 00:34:04,370 --> 00:34:07,480 midten der jeg søker min CSS tag, og deretter 682 00:34:07,480 --> 00:34:09,619 min andre divisjon med bunnen. 683 00:34:09,619 --> 00:34:10,785 Det er alt som er å fortelle deg. 684 00:34:10,785 --> 00:34:12,743 Fordi det er hyggelig å holde ting ryddig i orden, 685 00:34:12,743 --> 00:34:16,304 slik at programmet vet hvordan akkurat å kjøre. 686 00:34:16,304 --> 00:34:18,929 Og tror jeg kan kopiere lime dette inn i min faktiske leseren også. 687 00:34:18,929 --> 00:34:21,110 Det bør være i orden. 688 00:34:21,110 --> 00:34:21,610 Yeah. 689 00:34:21,610 --> 00:34:24,330 690 00:34:24,330 --> 00:34:25,989 Jippi. 691 00:34:25,989 --> 00:34:29,380 Så hvis alle ønsker å bare prøve å opprette en nettside, 692 00:34:29,380 --> 00:34:32,169 vi tar en annen to-tre minutter. 693 00:34:32,169 --> 00:34:34,460 Jeg vil bare være sikker alles servere kjører 694 00:34:34,460 --> 00:34:36,941 og alle har en ide om hvordan du gjør det. 695 00:34:36,941 --> 00:34:38,774 Hvis dere ønsker å ta ut datamaskinene. 696 00:34:38,774 --> 00:34:44,630 697 00:34:44,630 --> 00:34:45,635 Fortsatt ikke fungerer? 698 00:34:45,635 --> 00:34:47,420 >> PUBLIKUM: Jeg er bare [uhørbart]. 699 00:34:47,420 --> 00:34:49,838 >> ANDI PENG: Kanskje prøve å oppdatere 50 også. 700 00:34:49,838 --> 00:34:51,392 Yeah. 701 00:34:51,392 --> 00:34:52,308 PUBLIKUM: [uhørlig]. 702 00:34:52,308 --> 00:35:17,502 703 00:35:17,502 --> 00:35:18,990 >> ANDI PENG: Yeah. 704 00:35:18,990 --> 00:35:23,750 Så den måten at du starter en ny webserver på IDE er bare 705 00:35:23,750 --> 00:35:27,889 gjøre apache50 plass start plass prikk. 706 00:35:27,889 --> 00:35:30,430 Jeg ville bare være sikker alles servere kjører OK. 707 00:35:30,430 --> 00:35:31,763 >> PUBLIKUM: Her, på terminal? 708 00:35:31,763 --> 00:35:33,334 ANDI PENG: Yeah. 709 00:35:33,334 --> 00:35:34,250 PUBLIKUM: [uhørlig]. 710 00:35:34,250 --> 00:35:38,000 711 00:35:38,000 --> 00:35:38,985 >> ANDI PENG: Apache. 712 00:35:38,985 --> 00:35:42,010 Egentlig tror jeg du er kjører noe allerede. 713 00:35:42,010 --> 00:35:43,145 Ja, du er faktisk kjører en annen server. 714 00:35:43,145 --> 00:35:43,830 Ja, du er god. 715 00:35:43,830 --> 00:35:45,085 Så lenge det fungerer, er du OK. 716 00:35:45,085 --> 00:35:45,626 >> PUBLIKUM: OK. 717 00:35:45,626 --> 00:35:47,615 ANDI PENG: Det er to- måter å kjøre servere. 718 00:35:47,615 --> 00:35:49,990 Så så lenge en av måtene fungerer, er det all right. 719 00:35:49,990 --> 00:36:18,470 720 00:36:18,470 --> 00:36:21,680 Vi tar et minutt bare for å slags slutt opp 721 00:36:21,680 --> 00:36:25,280 den siste finpussen av hva nettside dere ønsket å gjøre. 722 00:36:25,280 --> 00:36:26,830 >> Er alle som jobber forresten? 723 00:36:26,830 --> 00:36:30,910 Alles servere er kjører foruten for deg? 724 00:36:30,910 --> 00:36:32,210 Vi vil finne ut av. 725 00:36:32,210 --> 00:36:34,137 Og HTML er ganske enkel. 726 00:36:34,137 --> 00:36:35,220 Så jeg tror vi er alt bra. 727 00:36:35,220 --> 00:36:38,260 728 00:36:38,260 --> 00:36:38,760 Yeah. 729 00:36:38,760 --> 00:36:41,070 Jeg vil komme tilbake. 730 00:36:41,070 --> 00:36:42,797 >> PUBLIKUM: [uhørlig]. 731 00:36:42,797 --> 00:36:43,380 ANDI PENG: OK. 732 00:36:43,380 --> 00:36:44,770 PUBLIKUM: Så det er bare begynte å laste opp. 733 00:36:44,770 --> 00:36:45,686 ANDI PENG: Ingen grunn til bekymring. 734 00:36:45,686 --> 00:36:49,590 735 00:36:49,590 --> 00:36:52,680 Så HTML, det er kildekoden som vil være online etter pkt. 736 00:36:52,680 --> 00:36:54,810 I tillegg har David en hel gjeng på nettet også. 737 00:36:54,810 --> 00:36:58,190 Bare slags blikk over det å se hvordan HTML-sider er skrevet. 738 00:36:58,190 --> 00:36:59,920 Det er ganske enkelt. 739 00:36:59,920 --> 00:37:03,979 Noe du ikke vet, har du ganske mye bare Google og du er flink. 740 00:37:03,979 --> 00:37:06,270 Jeg vil bare være sikker på at serverne kjører. 741 00:37:06,270 --> 00:37:12,962 742 00:37:12,962 --> 00:37:14,880 >> PUBLIKUM: Betyr det gjøre dette oftere? 743 00:37:14,880 --> 00:37:16,421 >> ANDI PENG: Det har aldri skjedd med meg. 744 00:37:16,421 --> 00:37:18,470 745 00:37:18,470 --> 00:37:20,782 Jeg visste ikke at det kan også ligge i dvale. 746 00:37:20,782 --> 00:37:22,516 >> PUBLIKUM: [uhørlig]. 747 00:37:22,516 --> 00:37:25,140 ANDI PENG: Jeg tror everyone-- mine har aldri hibernated før. 748 00:37:25,140 --> 00:37:26,860 Og jeg vet ikke hvorfor. 749 00:37:26,860 --> 00:37:27,566 Det er rart. 750 00:37:27,566 --> 00:37:29,310 >> PUBLIKUM: [uhørlig]. 751 00:37:29,310 --> 00:37:30,643 >> ANDI PENG: Er din dvale? 752 00:37:30,643 --> 00:37:32,615 753 00:37:32,615 --> 00:37:33,669 >> PUBLIKUM: [uhørlig]. 754 00:37:33,669 --> 00:37:34,335 ANDI PENG: Yeah. 755 00:37:34,335 --> 00:37:39,122 756 00:37:39,122 --> 00:37:39,872 PUBLIKUM: Det er OK. 757 00:37:39,872 --> 00:37:40,622 Så når det er åpent. 758 00:37:40,622 --> 00:37:41,760 ANDI PENG: OK. 759 00:37:41,760 --> 00:37:43,940 Vi skal ta med noen server problemer etter seksjon. 760 00:37:43,940 --> 00:37:44,860 Du bør være i orden. 761 00:37:44,860 --> 00:37:47,950 Selv om, vil du sørge for at du få dem løst før du reiser. 762 00:37:47,950 --> 00:37:49,380 Fordi hvis serveren din ikke kjører, da er du 763 00:37:49,380 --> 00:37:52,004 ikke kommer til å være i stand til å gjøre det PSet, som noen del av PSet. 764 00:37:52,004 --> 00:37:54,200 Så du vil være sikker at det fungerer. 765 00:37:54,200 --> 00:37:54,831 Kjølig. 766 00:37:54,831 --> 00:37:55,330 Greit. 767 00:37:55,330 --> 00:37:56,490 Si farvel kattunger. 768 00:37:56,490 --> 00:37:59,670 Jeg brukte lang tid på å lete etter som kattunge bilde for å sette på. 769 00:37:59,670 --> 00:38:02,272 Så, anyways. 770 00:38:02,272 --> 00:38:04,950 >> PUBLIKUM: [uhørlig]. 771 00:38:04,950 --> 00:38:05,770 >> ANDI PENG: Sorry? 772 00:38:05,770 --> 00:38:07,345 >> PUBLIKUM: [uhørlig]. 773 00:38:07,345 --> 00:38:08,970 ANDI PENG: Jeg tror det er på nettsiden. 774 00:38:08,970 --> 00:38:11,064 I likhet med spec? 775 00:38:11,064 --> 00:38:12,020 >> PUBLIKUM: [uhørlig]. 776 00:38:12,020 --> 00:38:16,080 Jeg tror spec er bare online i uke syv. 777 00:38:16,080 --> 00:38:18,850 Jeg tror det kalles pset6, selv selv om vi er på uke syv, som 778 00:38:18,850 --> 00:38:19,641 er litt databehandling. 779 00:38:19,641 --> 00:38:23,130 PUBLIKUM: Men jeg mener hvis du ønsker å se at-- hvis du 780 00:38:23,130 --> 00:38:28,666 ønsker å trekke opp vår versjon av nettstedet fra vår sever? 781 00:38:28,666 --> 00:38:31,820 Så som server.c er PSet, ikke sant? 782 00:38:31,820 --> 00:38:36,514 Hvis du ønsker å se på dette, som hvordan det sjekker ut? 783 00:38:36,514 --> 00:38:38,680 ANDI PENG: Åh, så egentlig den PSet, er alt vi gjør 784 00:38:38,680 --> 00:38:41,405 her er implementing-- her, Jeg skal gå over dette kort. 785 00:38:41,405 --> 00:38:44,187 786 00:38:44,187 --> 00:38:47,020 Så for alle som har nettopp fått §, dere er på hell. 787 00:38:47,020 --> 00:38:49,340 Det er veldig lite materiale å faktisk dekke i dag. 788 00:38:49,340 --> 00:38:52,585 >> Jeg kommer bare til å tilbringe den neste 20 minutter å gå over PSet hjelp. 789 00:38:52,585 --> 00:38:55,210 Fordi det er en del nyttig funksjoner som vil hjelpe ditt liv. 790 00:38:55,210 --> 00:38:57,501 Og forhåpentligvis vil vi være ute av her i som 20 minutter. 791 00:38:57,501 --> 00:38:58,360 OK. 792 00:38:58,360 --> 00:39:00,252 >> Så pset7 er galt. 793 00:39:00,252 --> 00:39:02,460 Selv om vi er på uke sju, det er faktisk pset6. 794 00:39:02,460 --> 00:39:04,220 Jeg kommer til å endre det. 795 00:39:04,220 --> 00:39:07,550 Alt vi gjør i pset6 er å skape en webserver. 796 00:39:07,550 --> 00:39:09,010 Det høres super skummelt. 797 00:39:09,010 --> 00:39:11,010 >> Og spesielt for de av dere som allerede har 798 00:39:11,010 --> 00:39:14,530 sett på fordelingskode, det er mye kode, mye kode. 799 00:39:14,530 --> 00:39:15,570 Men er helt OK. 800 00:39:15,570 --> 00:39:17,750 Fordi nitty gritty del av faktisk lage 801 00:39:17,750 --> 00:39:20,140 den serveren er utført av oss. 802 00:39:20,140 --> 00:39:22,090 Alt du egentlig spurte å gjøre i denne PSet 803 00:39:22,090 --> 00:39:25,350 er bare å gjøre noen streng manipulasjon i fil I / O. Det er faktisk 804 00:39:25,350 --> 00:39:27,570 som ganske enkel. 805 00:39:27,570 --> 00:39:30,830 >> Så når du først laste at-- som her har faktisk allerede lastet ned 806 00:39:30,830 --> 00:39:32,540 den PSet og tatt en titt? 807 00:39:32,540 --> 00:39:33,040 Greit. 808 00:39:33,040 --> 00:39:33,540 Yeah. 809 00:39:33,540 --> 00:39:36,042 Det er sånt som 500 linjer med kode at du kommer til å være som, 810 00:39:36,042 --> 00:39:36,750 hva skjer? 811 00:39:36,750 --> 00:39:38,177 Og det er helt greit. 812 00:39:38,177 --> 00:39:39,760 Sørg for at du ser på walk-throughs. 813 00:39:39,760 --> 00:39:41,610 Fordi David og-- Jeg vet ikke. 814 00:39:41,610 --> 00:39:43,870 Jeg tror ikke det er Zamyla, i denne. 815 00:39:43,870 --> 00:39:47,040 Men jeg tror noen andre walk-throughs er ganske 816 00:39:47,040 --> 00:39:49,510 nyttig i forhold til bare fortelle deg 817 00:39:49,510 --> 00:39:51,780 hva som skjer inne i koden din. 818 00:39:51,780 --> 00:39:53,330 >> Og det er helt OK. 819 00:39:53,330 --> 00:39:57,860 Fordi de fire funksjonene som du er bedt om å gjennomføre faktisk har 820 00:39:57,860 --> 00:39:59,720 null å gjøre med selve serveren. 821 00:39:59,720 --> 00:40:02,590 Alt de trenger å gjøre er bare parsing forskjellige strenger, 822 00:40:02,590 --> 00:40:05,780 søke gjennom strenger, å sørge for at ting blir gjort 823 00:40:05,780 --> 00:40:07,750 hva de skal gjøre. 824 00:40:07,750 --> 00:40:11,200 >> Slik som uttrykker, det finnes noen svært, svært nyttige funksjoner, 825 00:40:11,200 --> 00:40:13,630 spesielt for streng manipulasjon, at vi bør alle 826 00:40:13,630 --> 00:40:15,879 gå over at jeg trodde jeg hadde være svært nyttig for dere 827 00:40:15,879 --> 00:40:19,130 å lære før du prøver PSet. 828 00:40:19,130 --> 00:40:23,350 Og de er alle inneholdt innenfor string.h bibliotek. 829 00:40:23,350 --> 00:40:25,980 Det er nok mer nyttig funksjoner Jeg har ikke tatt med her, 830 00:40:25,980 --> 00:40:30,740 fordi jeg heller aldri bruke dem eller kanskje jeg bare ikke vet at de eksisterer. 831 00:40:30,740 --> 00:40:32,440 >> Føl deg fri til å titte gjennom student.h. 832 00:40:32,440 --> 00:40:36,460 Fordi det kommer til å være mye funksjoner som er svært nyttige. 833 00:40:36,460 --> 00:40:43,050 Så de seks som jeg bruker mest i min PSet da jeg gjorde det denne siste uken 834 00:40:43,050 --> 00:40:49,620 var strtok, strchr, strrcher, strstr, strcasecmp, og strcpy. 835 00:40:49,620 --> 00:40:53,060 Og så de to siste kan virke ganske kjent for de fleste av dere. 836 00:40:53,060 --> 00:40:56,910 Str tilfelle sammenligne, alt den gjør er å sammenligne strenger å sjekke dem for likestilling, 837 00:40:56,910 --> 00:40:58,110 inkludert tilfelle. 838 00:40:58,110 --> 00:41:01,430 Og strcpy bare kopierer en streng i en buffer. 839 00:41:01,430 --> 00:41:04,430 >> Og så de to skal virke veldig kjent for dere på dette punktet. 840 00:41:04,430 --> 00:41:07,100 Fordi vi har brukt dem mye, spesielt for de siste psets. 841 00:41:07,100 --> 00:41:10,734 Men de fire første kanskje du ikke har sett til nå. 842 00:41:10,734 --> 00:41:12,400 Men jeg kommer til å bare gå gjennom dem. 843 00:41:12,400 --> 00:41:15,620 Fordi de kommer til å gjøre livet virkelig, virkelig lett for-- ikke lett, 844 00:41:15,620 --> 00:41:19,830 men mye enklere for denne kommende PSet. 845 00:41:19,830 --> 00:41:20,420 >> OK. 846 00:41:20,420 --> 00:41:27,720 Så char * strtok, er denne funksjonen definisjonen for denne funksjon inngår 847 00:41:27,720 --> 00:41:31,050 i strengen, h bibliotek. 848 00:41:31,050 --> 00:41:34,340 Dersom du får en inngang på char * strengen, som er bare en streng, 849 00:41:34,340 --> 00:41:38,220 eller en konstant char * deliminator, delim for kort, 850 00:41:38,220 --> 00:41:42,410 alt det gjør er å bryte den større streng inn i en serie av hva vi kaller 851 00:41:42,410 --> 00:41:45,730 tokens atskilt av en viss verdi. 852 00:41:45,730 --> 00:42:03,340 Så på en måte, hvis jeg skulle gi du section.7.php, dette er en streng. 853 00:42:03,340 --> 00:42:09,520 >> Så det ville være hvis jeg skulle gå i dette som min str, min char * str, 854 00:42:09,520 --> 00:42:18,870 Hvis min deliminator var prikk, alt dette ville gjøre er å søke gjennom streng. 855 00:42:18,870 --> 00:42:22,790 Og første gang den ser en prikk, ville det bare tilbake til pekeren 856 00:42:22,790 --> 00:42:25,830 til den siste token funnet i strengen før dette. 857 00:42:25,830 --> 00:42:27,230 Så det ville gå rett her. 858 00:42:27,230 --> 00:42:30,580 >> Og det ville bare gi meg 7.php. 859 00:42:30,580 --> 00:42:34,070 Og hvis jeg skulle ringe fungere en gang til, 860 00:42:34,070 --> 00:42:37,580 det ville gi meg bare php. 861 00:42:37,580 --> 00:42:41,540 Og så all denne funksjonen gjør er å bryte ned den større streng 862 00:42:41,540 --> 00:42:44,620 i mindre strenger avhengig på det du leter etter. 863 00:42:44,620 --> 00:42:46,670 >> Og så for eksempel i utseende up funksjon 864 00:42:46,670 --> 00:42:49,895 Hvis du ønsker å se på hva visse tegn skje 865 00:42:49,895 --> 00:42:54,280 eller hvis prikker skje eller utvidelser skje, Denne funksjonen vil være ganske nyttig. 866 00:42:54,280 --> 00:42:57,260 867 00:42:57,260 --> 00:42:59,010 Yeah. 868 00:42:59,010 --> 00:42:59,510 Ingen bekymringer. 869 00:42:59,510 --> 00:43:01,339 Dette vil alle be-- ja, hva skjer? 870 00:43:01,339 --> 00:43:07,087 >> PUBLIKUM: Så i første linje, hvis vi bruker dette eksempelet 871 00:43:07,087 --> 00:43:09,504 hva ville vi sette inn i det? 872 00:43:09,504 --> 00:43:10,170 ANDI PENG: Yeah. 873 00:43:10,170 --> 00:43:13,000 874 00:43:13,000 --> 00:43:25,640 Du ville bare ringe en strtok string komma delim. 875 00:43:25,640 --> 00:43:30,260 Og strengen er lik section.7.php. 876 00:43:30,260 --> 00:43:35,244 Og da er du delim kan være lik bare dot. 877 00:43:35,244 --> 00:43:36,654 >> PUBLIKUM: OK. 878 00:43:36,654 --> 00:43:39,010 >> ANDI PENG: Yeah. 879 00:43:39,010 --> 00:43:41,266 Bare sånn. 880 00:43:41,266 --> 00:43:43,890 Alle disse funksjonene er nokså lignende når vi går gjennom dem. 881 00:43:43,890 --> 00:43:45,514 De gjør bare litt forskjellige ting. 882 00:43:45,514 --> 00:43:49,530 Men de kommer alle til å gjør livet mye enklere. 883 00:43:49,530 --> 00:43:53,940 Andre funksjonen, dette er som super, super, super viktig, 884 00:43:53,940 --> 00:43:58,254 er the-- holde opp. 885 00:43:58,254 --> 00:44:07,560 886 00:44:07,560 --> 00:44:08,730 >> Oops. 887 00:44:08,730 --> 00:44:13,810 Strchr søker etter den første occurrence-- faktisk, ja. 888 00:44:13,810 --> 00:44:16,385 Strchr er den funksjonen som Jeg definitivt gikk over. 889 00:44:16,385 --> 00:44:18,260 Så ignorere hva jeg sa for den første funksjon. 890 00:44:18,260 --> 00:44:20,980 Det er faktisk kalt strchr. 891 00:44:20,980 --> 00:44:24,840 >> Så hva ville skjedd her er hvis du fikk en streng i en char c, 892 00:44:24,840 --> 00:44:28,660 det ville bare gi du uansett hva det var. 893 00:44:28,660 --> 00:44:29,230 Yeah. 894 00:44:29,230 --> 00:44:33,700 Så tenk på det som str, som er en streng, og chr som røye. 895 00:44:33,700 --> 00:44:38,621 Så alt du prøver å gjøre er å søke for hvor en char er inne i en streng. 896 00:44:38,621 --> 00:44:41,120 Og så den søker etter den første forekomst av tegnet 897 00:44:41,120 --> 00:44:43,601 c i strengen str. 898 00:44:43,601 --> 00:44:46,463 >> PUBLIKUM: [uhørlig]. 899 00:44:46,463 --> 00:44:48,380 >> ANDI PENG: Yup. 900 00:44:48,380 --> 00:44:51,230 Og så hvis det ikke finner det, det kommer til å returnere NULL. 901 00:44:51,230 --> 00:44:54,313 Så noe som kommer til å bli veldig nyttig for dere i å gjøre det PSet 902 00:44:54,313 --> 00:44:59,030 hvis, si, var du ute etter en forlengelse som en .docx for en Word 903 00:44:59,030 --> 00:45:04,740 dokument eller en PDF til et PDF-dokument, du kan slags bruke den til å se 904 00:45:04,740 --> 00:45:08,720 for alt som er etterpå hver gang du ser en prikk, ikke sant? 905 00:45:08,720 --> 00:45:11,880 Og så ganske mye, hvis du kjøre som gjennom funksjon, 906 00:45:11,880 --> 00:45:13,610 hvis den returnerer NULL, da vet du at det 907 00:45:13,610 --> 00:45:17,292 fant ikke det dot, noe som betyr at dette åpenbart ikke er en gyldig filtype. 908 00:45:17,292 --> 00:45:19,000 Eller hvis den returnerer noe, så vet du 909 00:45:19,000 --> 00:45:21,940 det kommer til å gå tilbake hva som står faktisk etter utvidelsen. 910 00:45:21,940 --> 00:45:24,190 Så de av dere som hadde begynte å se gjennom oppslag 911 00:45:24,190 --> 00:45:28,640 og analysere, denne funksjonen er kommer til å være super nyttig. 912 00:45:28,640 --> 00:45:32,010 Så vi blir faktisk kommer å demonstrere ved hjelp av denne. 913 00:45:32,010 --> 00:45:36,670 >> Hvorfor ikke dere prøve å skrive en funksjon bool setning char * s som 914 00:45:36,670 --> 00:45:39,610 bare returnerer true hvis s er en setning og falsk ellers. 915 00:45:39,610 --> 00:45:44,110 916 00:45:44,110 --> 00:45:46,830 Så hint, du kommer til sannsynligvis bruke strchr. 917 00:45:46,830 --> 00:45:50,420 Eller du søker bare i streng for et bestemt tegn. 918 00:45:50,420 --> 00:45:54,950 Og så i en setning, det som skiller en setning 919 00:45:54,950 --> 00:45:57,510 fra et ikke-setning, hvilke konkrete karakter? 920 00:45:57,510 --> 00:45:58,260 PUBLIKUM: En plass. 921 00:45:58,260 --> 00:45:59,343 ANDI PENG: En plass, ikke sant? 922 00:45:59,343 --> 00:46:03,354 Og så hva gjør vi sannsynligvis kommer til å ønsker å gjøre innenfor denne funksjonen her? 923 00:46:03,354 --> 00:46:04,290 >> PUBLIKUM: [uhørlig]. 924 00:46:04,290 --> 00:46:07,623 >> ANDI PENG: Vi kommer til å ønske å strchr streng for utseendet på plass. 925 00:46:07,623 --> 00:46:11,330 Fordi hvis den returnerer noe, så vi vet at dette må være en setning. 926 00:46:11,330 --> 00:46:14,510 Det betyr at vi må ha en plass i denne strengen. 927 00:46:14,510 --> 00:46:17,660 >> Hvis det ikke er plass, så vet vi at, hei, antar det ikke er en streng. 928 00:46:17,660 --> 00:46:20,060 Det er nok bare en veldig lang ord. 929 00:46:20,060 --> 00:46:23,242 Så jeg skal gi dere et par minutter på å skrive denne funksjonen. 930 00:46:23,242 --> 00:46:44,398 931 00:46:44,398 --> 00:46:45,874 Yeah. 932 00:46:45,874 --> 00:46:47,970 >> PUBLIKUM: Fikk du denne strengen fra brukeren? 933 00:46:47,970 --> 00:46:48,440 >> ANDI PENG: Yeah. 934 00:46:48,440 --> 00:46:49,565 Så dette er bare en funksjon. 935 00:46:49,565 --> 00:46:54,586 Så tenk deg inni hovedfunksjon du allerede have-- la oss gå her. 936 00:46:54,586 --> 00:47:00,040 937 00:47:00,040 --> 00:47:00,540 OK. 938 00:47:00,540 --> 00:47:05,270 Så jeg har skrevet dette programmet der Jeg har min hovedfunksjon der 939 00:47:05,270 --> 00:47:07,432 Jeg har nettopp opprettet to strenger. 940 00:47:07,432 --> 00:47:09,890 Den første er Hi, my name er Andi-- klart, en setning. 941 00:47:09,890 --> 00:47:13,240 Min andre er bare Andi, helt klart ikke dømme. 942 00:47:13,240 --> 00:47:18,390 >> Og så jeg kjører begge disse strenger gjennom denne funksjonen. 943 00:47:18,390 --> 00:47:20,540 Jeg ønsker dere å skrive kaldt setning. 944 00:47:20,540 --> 00:47:23,380 Og jeg lagrer disse verdiene, og så bare skrive dem ut. 945 00:47:23,380 --> 00:47:26,549 Så tenk at brukeren er kommer til å passere i en streng. 946 00:47:26,549 --> 00:47:29,590 Og så kommer dere til hovedsak finne ut om det er en setning eller ikke 947 00:47:29,590 --> 00:47:31,131 og returnerer sant eller usant tilsvarende. 948 00:47:31,131 --> 00:48:41,850 949 00:48:41,850 --> 00:48:45,200 >> Hvis dere ønsker å gi en tommelen opp eller heads up, hode nikk, 950 00:48:45,200 --> 00:48:49,080 er noen er klar til å starte dette, det ville være bra. 951 00:48:49,080 --> 00:50:13,570 952 00:50:13,570 --> 00:50:15,200 Kanskje som 30 sekunder? 953 00:50:15,200 --> 00:50:49,570 954 00:50:49,570 --> 00:50:50,070 Greit. 955 00:50:50,070 --> 00:50:52,870 La oss se om du kan prøve skriver denne funksjonen. 956 00:50:52,870 --> 00:50:57,480 >> Så pseudo coding-- jeg bare kommer til å slags gå gjennom dette akkurat nå. 957 00:50:57,480 --> 00:51:00,570 Ganske mye, vi vet det funksjon som vi trenger å bruke. 958 00:51:00,570 --> 00:51:04,390 Vi kommer til å kalle den funksjonen på vår streng og søk etter en plass. 959 00:51:04,390 --> 00:51:08,682 Hvis den gir noe, så må vi vet det, helt klart, dette er en setning. 960 00:51:08,682 --> 00:51:09,640 Fordi det er plasser. 961 00:51:09,640 --> 00:51:10,930 Vi deretter skal returnere true. 962 00:51:10,930 --> 00:51:12,310 Else, vi kommer til å returnere false. 963 00:51:12,310 --> 00:51:14,393 Er det noen som ønsker å gi meg den første linjen med kode 964 00:51:14,393 --> 00:51:16,890 at vi faktisk kommer å bruke til å skrive dette? 965 00:51:16,890 --> 00:51:19,680 Det er faktisk den vanskeligste linje med kode i tillegg. 966 00:51:19,680 --> 00:51:21,026 Yeah. 967 00:51:21,026 --> 00:51:28,942 >> PUBLIKUM: Hvis strtok S- 968 00:51:28,942 --> 00:51:29,900 ANDI PENG: Just strchr. 969 00:51:29,900 --> 00:51:35,354 PUBLIKUM: [interposing VOICES] områder som ikke er lik til null. 970 00:51:35,354 --> 00:51:38,270 971 00:51:38,270 --> 00:51:40,710 >> ANDI PENG: Cool. 972 00:51:40,710 --> 00:51:41,470 Helt riktig. 973 00:51:41,470 --> 00:51:43,200 Alle forstår at første linje? 974 00:51:43,200 --> 00:51:46,110 Vi kommer til å kalle strstr, som er en funksjon som søker 975 00:51:46,110 --> 00:51:51,830 strengen s for trekullet plass. 976 00:51:51,830 --> 00:51:56,010 Og hvis den finner det, kommer det til å returnere en peker til hvor det er. 977 00:51:56,010 --> 00:51:58,500 >> Hvis den ikke finner den, det kommer til å returnere NULL. 978 00:51:58,500 --> 00:52:02,530 Så hvis det returnerer noe annet enn NULL, så vet vi at det er funnet en plass. 979 00:52:02,530 --> 00:52:03,553 Gir det mening? 980 00:52:03,553 --> 00:52:04,090 Kjølig. 981 00:52:04,090 --> 00:52:04,590 Greit. 982 00:52:04,590 --> 00:52:08,246 Så hvis vi vet at det er funnet en plass, hva vi ønsker å gjøre? 983 00:52:08,246 --> 00:52:09,162 PUBLIKUM: Retur sant. 984 00:52:09,162 --> 00:52:09,787 ANDI PENG: Yup. 985 00:52:09,787 --> 00:52:11,940 Return true. 986 00:52:11,940 --> 00:52:15,034 Og så, noen ønsker å avslutte funksjonen for meg? 987 00:52:15,034 --> 00:52:16,300 Yeah. 988 00:52:16,300 --> 00:52:19,720 Annet, bare sånn. 989 00:52:19,720 --> 00:52:20,780 Og prøv å samle dette. 990 00:52:20,780 --> 00:52:26,071 991 00:52:26,071 --> 00:52:28,000 >> Jepp. 992 00:52:28,000 --> 00:52:33,099 Så som dere kan se av utganger, husker Booleans i C 993 00:52:33,099 --> 00:52:34,390 er alltid uttrykt i binær. 994 00:52:34,390 --> 00:52:35,100 1 er sann. 995 00:52:35,100 --> 00:52:36,350 0 er falsk. 996 00:52:36,350 --> 00:52:39,720 >> Hvis vi skulle kjøre denne funksjonen på streng en, som 997 00:52:39,720 --> 00:52:42,900 er Hei, mitt navn er Andi-- klart, en sentence-- resultatet 998 00:52:42,900 --> 00:52:45,700 skrives ut til en som er sant. 999 00:52:45,700 --> 00:52:48,420 Den andre, som er like et ord, resultat skrives ut 1000 00:52:48,420 --> 00:52:50,630 til 0, noe som er usant. 1001 00:52:50,630 --> 00:52:54,820 Alle klar slags på hvordan denne funksjonen ble skrevet? 1002 00:52:54,820 --> 00:52:55,800 Yeah. 1003 00:52:55,800 --> 00:52:59,770 >> PUBLIKUM: Kan vi også gjøre, i stedet for ikke like nei, lik lik 0, 1004 00:52:59,770 --> 00:53:03,677 slik at det er lik? 1005 00:53:03,677 --> 00:53:04,260 ANDI PENG: No. 1006 00:53:04,260 --> 00:53:07,480 Fordi strchr er en funksjon. 1007 00:53:07,480 --> 00:53:09,940 Jeg kommer til å tilbake til dette. 1008 00:53:09,940 --> 00:53:14,624 Så hva er returtype av vår strchr funksjon? 1009 00:53:14,624 --> 00:53:15,332 PUBLIKUM: Oh, OK. 1010 00:53:15,332 --> 00:53:15,800 Eller NULL. 1011 00:53:15,800 --> 00:53:16,466 >> ANDI PENG: Yeah. 1012 00:53:16,466 --> 00:53:20,890 Det er en char * som forteller meg at uansett denne funksjonen kommer til å vende tilbake, 1013 00:53:20,890 --> 00:53:22,090 det kommer til å være en peker. 1014 00:53:22,090 --> 00:53:24,860 Enten pekeren kommer til å være peke på hvor det er funnet det, 1015 00:53:24,860 --> 00:53:27,550 eller det kommer til å gå tilbake en peker til NULL. 1016 00:53:27,550 --> 00:53:30,930 I begge omstendighet, kommer det til å returnere en peker til noe. 1017 00:53:30,930 --> 00:53:34,354 >> Og så hvis du var å likestille dette tilsvarer, er lik, 0, 1018 00:53:34,354 --> 00:53:36,020 du kommer til å få en samling feil. 1019 00:53:36,020 --> 00:53:37,645 Fordi det kommer til å returnere en peker. 1020 00:53:37,645 --> 00:53:40,240 Og du kommer til å prøve å sammenligne en peker til et heltall. 1021 00:53:40,240 --> 00:53:42,515 Og datamaskinen er ikke kommer til å like det. 1022 00:53:42,515 --> 00:53:45,630 Ja, akkurat. 1023 00:53:45,630 --> 00:53:46,540 Kjølig. 1024 00:53:46,540 --> 00:53:47,525 Alle gode? 1025 00:53:47,525 --> 00:53:55,770 1026 00:53:55,770 --> 00:53:59,770 >> Og for det andre, vi kommer til å gå over en funksjon som heter strstr. 1027 00:53:59,770 --> 00:54:02,020 Ingen grunn til bekymring dersom disse funksjonene er forvirrende deg. 1028 00:54:02,020 --> 00:54:03,750 De er forvirrende meg. 1029 00:54:03,750 --> 00:54:07,250 Som sådan, kunne dere har sett, de alle høres ganske mye det samme. 1030 00:54:07,250 --> 00:54:10,400 Bare når du er forvirret, trekke opp string.h biblioteket. 1031 00:54:10,400 --> 00:54:13,290 Og dere kan sortere der ens som. 1032 00:54:13,290 --> 00:54:18,910 >> Så strstr, alt som gjør søk en streng for en helt annen streng. 1033 00:54:18,910 --> 00:54:21,980 Så hvor strchr bare søk for en enkelt karakter, 1034 00:54:21,980 --> 00:54:24,090 strstr søker etter en hel streng. 1035 00:54:24,090 --> 00:54:30,440 Så jeg ønsket å se på, vet jeg ikke vet, Hei, mitt navn er Andi. 1036 00:54:30,440 --> 00:54:32,490 Og min beste venns navn er også Andi. 1037 00:54:32,490 --> 00:54:37,180 >> Hvis jeg ønsket å se etter i denne setning for hele ordet av Andi, 1038 00:54:37,180 --> 00:54:39,930 min nålen ville ha vært uansett hva du leter etter. 1039 00:54:39,930 --> 00:54:43,440 Og din høystakken er uansett du leter etter den i. 1040 00:54:43,440 --> 00:54:47,050 Så hvis du leter etter en spesifikke ord i en setning, 1041 00:54:47,050 --> 00:54:48,800 det ordet kommer til å være din nål. 1042 00:54:48,800 --> 00:54:51,397 Og så setningen selv kommer til å være din høystakk. 1043 00:54:51,397 --> 00:54:53,230 Og slik er det bare søker den første forekomsten 1044 00:54:53,230 --> 00:54:55,063 av strengen nålen i strengen høystakken. 1045 00:54:55,063 --> 00:54:57,140 Den returnerer pekeren til den første forekomst. 1046 00:54:57,140 --> 00:55:00,510 Unntatt, husker i dette tilfellet, er det første forekomst av hele strengen 1047 00:55:00,510 --> 00:55:02,510 at du søker for, ikke bare et tegn. 1048 00:55:02,510 --> 00:55:04,676 >> Og så dette er nesten det samme som funksjonen 1049 00:55:04,676 --> 00:55:09,100 vi nettopp gjorde, bare med litt mer spesifisitet. 1050 00:55:09,100 --> 00:55:12,730 Fordi du søker etter mer enn bare ett tegn. 1051 00:55:12,730 --> 00:55:16,310 Og bruken er nøyaktig samme som den vi nettopp gjorde. 1052 00:55:16,310 --> 00:55:18,070 Alle OK med dette? 1053 00:55:18,070 --> 00:55:20,250 OK. 1054 00:55:20,250 --> 00:55:23,560 >> Siste som vi kommer til å gå løpet er strrchr, som ikke er 1055 00:55:23,560 --> 00:55:26,320 forveksles med strstr eller med strchr. 1056 00:55:26,320 --> 00:55:27,890 strrchr har en ekstra r der inne. 1057 00:55:27,890 --> 00:55:29,140 Vær forsiktig når du skriver. 1058 00:55:29,140 --> 00:55:33,851 Du kan finne deg selv inkludert en ekstra r eller ikke inkludert en r, 1059 00:55:33,851 --> 00:55:35,850 og deretter din funksjon ikke fikk gå på jobb. 1060 00:55:35,850 --> 00:55:37,183 Og du kommer til å bli forvirret. 1061 00:55:37,183 --> 00:55:40,150 Vær forsiktig så du stave alle disse funksjonene riktig. 1062 00:55:40,150 --> 00:55:43,770 >> Så strrchr er den eksakte samme som strchr 1063 00:55:43,770 --> 00:55:47,480 bortsett fra den søker etter ikke første forekomst av en bestemt karakter, 1064 00:55:47,480 --> 00:55:49,350 men heller den siste forekomsten. 1065 00:55:49,350 --> 00:55:52,800 Og så, i den forstand, det er nesten nøyaktig det samme. 1066 00:55:52,800 --> 00:55:54,620 Men i stedet for å flytte fremover i en streng, 1067 00:55:54,620 --> 00:55:57,230 du kommer til å være i bevegelse bakover i en streng. 1068 00:55:57,230 --> 00:56:00,510 Akkurat det samme, du er bare søking i en annen rekkefølge. 1069 00:56:00,510 --> 00:56:04,690 >> Og så dette kan være super, super nyttig for din lookup 1070 00:56:04,690 --> 00:56:07,490 funksjon, først funksjonen på din PSet. 1071 00:56:07,490 --> 00:56:12,710 La oss late som vi trengte å skrive en funksjon av tomrommet forlengelse der vi 1072 00:56:12,710 --> 00:56:17,850 passere en konstant char * filnavn, bare en streng, et filnavn 1073 00:56:17,850 --> 00:56:21,370 som tar inn det navnet og utskrifter ut forlengelsen av denne filen. 1074 00:56:21,370 --> 00:56:26,520 Så for eksempel, hvis jeg skulle passere i strengen av pset7.zip, 1075 00:56:26,520 --> 00:56:30,004 det kommer til å skrive ut bare utvidelsen, som er .zip. 1076 00:56:30,004 --> 00:56:31,920 Og dette ville fungere for noen form for forlengelse, 1077 00:56:31,920 --> 00:56:38,290 .docx for Word eller PDF for en PDF fil eller HTML for en HTML-fil. 1078 00:56:38,290 --> 00:56:40,425 Ganske mye, skriver en funksjon som kan gjøre det. 1079 00:56:40,425 --> 00:56:42,300 Jeg er faktisk kommer til å bytte over til IDE. 1080 00:56:42,300 --> 00:56:54,560 1081 00:56:54,560 --> 00:56:56,740 Det er ikke load-- der vi går. 1082 00:56:56,740 --> 00:57:00,990 >> Så alt jeg har gjort her er opprettes en char *, en første streng, 1083 00:57:00,990 --> 00:57:01,930 kalt pset7.zip. 1084 00:57:01,930 --> 00:57:04,530 Jeg kommer til å zoome inn. 1085 00:57:04,530 --> 00:57:08,520 Jeg har opprettet en ekstra streng kalt finalpaper.docx. 1086 00:57:08,520 --> 00:57:12,649 Og skrive meg en funksjon som når kalt kommer til å bare skrive ut 1087 00:57:12,649 --> 00:57:13,690 de filtyper. 1088 00:57:13,690 --> 00:57:16,702 1089 00:57:16,702 --> 00:57:19,660 Kanskje ta et par minutter til å tenke om hvordan du skal gjøre dette. 1090 00:57:19,660 --> 00:57:22,510 Litt mer utfordrende enn den siste, 1091 00:57:22,510 --> 00:57:24,770 men bruken er nesten akkurat det samme. 1092 00:57:24,770 --> 00:57:29,670 1093 00:57:29,670 --> 00:57:30,170 Yeah. 1094 00:57:30,170 --> 00:57:37,540 Så skriv en funksjon kalt forlengelse at hvis jeg gi deg navnet på en fil, 1095 00:57:37,540 --> 00:57:41,340 hvis jeg skulle gi deg pset7.zip-- jeg Vil du skrive ut bare den .zip. 1096 00:57:41,340 --> 00:57:45,040 1097 00:57:45,040 --> 00:57:49,890 Hvis jeg gir deg lyst finalpaper.docx, bare skrive ut .docx, 1098 00:57:49,890 --> 00:57:51,538 bare utvidelsen av hva fil. 1099 00:57:51,538 --> 00:59:03,720 1100 00:59:03,720 --> 00:59:07,790 >> Dette faktisk bare tar to linjer med kode. 1101 00:59:07,790 --> 00:59:10,692 Så prøv å se om du kan kanskje gjøre det i den. 1102 00:59:10,692 --> 00:59:12,400 Egentlig bare det tar en linje med kode. 1103 00:59:12,400 --> 00:59:14,074 Men to linjer er nok mer standard. 1104 00:59:14,074 --> 00:59:20,408 1105 00:59:20,408 --> 00:59:22,574 Hvilken funksjon er vi sannsynligvis skal du ønsker å ringe? 1106 00:59:22,574 --> 00:59:25,286 1107 00:59:25,286 --> 00:59:26,260 >> PUBLIKUM: strrchr. 1108 00:59:26,260 --> 00:59:27,343 >> ANDI PENG: strrchr, høyre. 1109 00:59:27,343 --> 00:59:29,570 Fordi vi ser fra høyre til venstre. 1110 00:59:29,570 --> 00:59:32,107 1111 00:59:32,107 --> 00:59:33,940 Jeg ville ikke gi dere et eksempel som dette, 1112 00:59:33,940 --> 00:59:38,870 men hvis jeg ga deg et eksempel som www.apple.com og jeg ville bare 1113 00:59:38,870 --> 00:59:43,005 .com, ville det være et eksempel på hvor du ønsker å ringe siste instans 1114 00:59:43,005 --> 00:59:44,630 av perioden, og ikke den første, ikke sant? 1115 00:59:44,630 --> 00:59:47,470 Hvis du var samtalen strchr, det ville har gitt deg apple.com. 1116 00:59:47,470 --> 00:59:49,966 >> Hvis du heter strrchr, det ville ha gitt deg .com. 1117 00:59:49,966 --> 00:59:53,062 Og så vær forsiktig om hvilke ways-- i mitt eksempel, 1118 00:59:53,062 --> 00:59:55,520 kan du sannsynligvis kunne ha nettopp skrevet den ved hjelp strchr, 1119 00:59:55,520 --> 00:59:57,130 siden det er bare en prikk. 1120 00:59:57,130 --> 00:59:59,790 Men i andre tilfeller det kan ikke være tilfelle. 1121 00:59:59,790 --> 01:00:04,960 Og så prøver alltid å designe koden din godt, så at-- ja? 1122 01:00:04,960 --> 01:00:07,365 >> PUBLIKUM: Så i eksempel du nettopp sa, 1123 01:00:07,365 --> 01:00:11,760 når du strrchr det ville gi deg .com eller bare komme? 1124 01:00:11,760 --> 01:00:13,960 >> ANDI PENG: Det vil gi deg .com. 1125 01:00:13,960 --> 01:00:14,794 >> PUBLIKUM: OK. 1126 01:00:14,794 --> 01:00:15,460 ANDI PENG: Yeah. 1127 01:00:15,460 --> 01:00:18,090 1128 01:00:18,090 --> 01:00:19,744 Den peker til der den fant det. 1129 01:00:19,744 --> 01:00:20,244 Yeah. 1130 01:00:20,244 --> 01:00:24,120 1131 01:00:24,120 --> 01:00:25,188 30 sekunder kanskje? 1132 01:00:25,188 --> 01:00:25,688 Yeah. 1133 01:00:25,688 --> 01:00:56,640 1134 01:00:56,640 --> 01:00:58,500 Alle gode eller kanskje litt mer tid? 1135 01:00:58,500 --> 01:01:01,057 1136 01:01:01,057 --> 01:01:01,640 Håndsopprekning? 1137 01:01:01,640 --> 01:01:02,320 Vis hoder? 1138 01:01:02,320 --> 01:01:04,801 1139 01:01:04,801 --> 01:01:05,300 Kjølig. 1140 01:01:05,300 --> 01:01:07,924 Alle som ønsker å gi meg den første linje med kode for dette programmet? 1141 01:01:07,924 --> 01:01:11,861 1142 01:01:11,861 --> 01:01:12,777 PUBLIKUM: [uhørlig]. 1143 01:01:12,777 --> 01:01:16,190 1144 01:01:16,190 --> 01:01:20,160 >> ANDI PENG: Så først av alt, la oss kanskje bryte dette ned. 1145 01:01:20,160 --> 01:01:24,370 Så hva er avkastningen type strrchr? 1146 01:01:24,370 --> 01:01:26,150 La oss gå tilbake. 1147 01:01:26,150 --> 01:01:29,015 strrchr, hva er avkastningen type? 1148 01:01:29,015 --> 01:01:29,640 PUBLIKUM: Char * 1149 01:01:29,640 --> 01:01:31,270 ANDI PENG: Det er en char *, ikke sant? 1150 01:01:31,270 --> 01:01:35,760 Hvilket betyr at du sannsynligvis kommer å ønske å opprette en char * til slag 1151 01:01:35,760 --> 01:01:40,400 av butikken når det er tilbake til, ikke sant? 1152 01:01:40,400 --> 01:01:43,200 Fordi hvis du ringer funksjonen strrchr, 1153 01:01:43,200 --> 01:01:47,030 det kommer til å gi deg en peker til hvor det funnet at siste periode, 1154 01:01:47,030 --> 01:01:47,580 ikke sant? 1155 01:01:47,580 --> 01:01:49,913 >> Men du kommer til å ønske å lagre det et sted, ikke sant? 1156 01:01:49,913 --> 01:01:52,612 Og så hvordan koden vi gjør dette inn i vårt program? 1157 01:01:52,612 --> 01:01:54,320 PUBLIKUM: Du gjør røye * [uhørbart]. 1158 01:01:54,320 --> 01:01:55,240 ANDI PENG: Jepp. 1159 01:01:55,240 --> 01:01:57,120 PUBLIKUM: [uhørlig]. 1160 01:01:57,120 --> 01:01:58,000 ANDI PENG: strrchr. 1161 01:01:58,000 --> 01:01:58,390 Yeah. 1162 01:01:58,390 --> 01:01:59,306 Oh, savnet en r der. 1163 01:01:59,306 --> 01:02:02,877 PUBLIKUM: Filnavn [uhørbart]. 1164 01:02:02,877 --> 01:02:03,376 Hva er dette? 1165 01:02:03,376 --> 01:02:04,420 Åh, det er bare s. 1166 01:02:04,420 --> 01:02:04,940 >> ANDI PENG: Åh, det er bare s. 1167 01:02:04,940 --> 01:02:05,610 Yup, sorry. 1168 01:02:05,610 --> 01:02:06,330 Min feil. 1169 01:02:06,330 --> 01:02:08,370 Eksempler samsvarte ikke. 1170 01:02:08,370 --> 01:02:12,130 >> PUBLIKUM: Og så dot. 1171 01:02:12,130 --> 01:02:13,970 >> ANDI PENG: Yup. 1172 01:02:13,970 --> 01:02:16,570 Vær forsiktig når dere are-- her, la meg zoome inn. 1173 01:02:16,570 --> 01:02:22,355 1174 01:02:22,355 --> 01:02:24,400 Det vi går. 1175 01:02:24,400 --> 01:02:26,770 Vær forsiktig når dere skriver, spesielt når 1176 01:02:26,770 --> 01:02:27,920 du gjør bare en røye. 1177 01:02:27,920 --> 01:02:32,480 Det er veldig lett å tilfeldigvis bare gjøre anførselstegn snarere enn single. 1178 01:02:32,480 --> 01:02:35,212 >> Det vil ikke fungere. 1179 01:02:35,212 --> 01:02:36,670 Kompilatoren kommer til å klage. 1180 01:02:36,670 --> 01:02:38,790 Og din funksjon er bare ikke kommer til å kjøre. 1181 01:02:38,790 --> 01:02:40,540 Og så vær forsiktig når du du gjør ting 1182 01:02:40,540 --> 01:02:42,622 med tegn at det er enkle anførselstegn. 1183 01:02:42,622 --> 01:02:44,830 Og det gjør denne linjen av kode fornuftig for alle? 1184 01:02:44,830 --> 01:02:46,810 Vi skaper en char * pekeren. 1185 01:02:46,810 --> 01:02:50,310 Fordi strrchr avkastning noe av type pekeren. 1186 01:02:50,310 --> 01:02:53,440 >> Og så vi kommer til å kalle strchr på s, som er strengen, filen 1187 01:02:53,440 --> 01:02:55,140 nevne at vi kjører i. 1188 01:02:55,140 --> 01:02:59,750 Og vi leter etter den siste forekomst av en periode, noe som er 1189 01:02:59,750 --> 01:03:02,200 bare ett sitat dot enkelt tilbud. 1190 01:03:02,200 --> 01:03:02,700 Yeah. 1191 01:03:02,700 --> 01:03:05,180 >> PUBLIKUM: Når skal vi bruke anførselstegn og når bruker vi apostrof? 1192 01:03:05,180 --> 01:03:05,320 >> ANDI PENG: Yeah. 1193 01:03:05,320 --> 01:03:07,180 Så anførselstegn er alltid brukes når du 1194 01:03:07,180 --> 01:03:10,120 har en streng av mer enn bare en. 1195 01:03:10,120 --> 01:03:13,070 Så hvis du gjør strstr, som er den du 1196 01:03:13,070 --> 01:03:16,320 søke en streng for streng, du ville passere det i anførselstegn. 1197 01:03:16,320 --> 01:03:18,070 Men helst er det bare en enkelt karakter, 1198 01:03:18,070 --> 01:03:19,870 du ønsker å gjøre enkle anførselstegn. 1199 01:03:19,870 --> 01:03:22,880 >> Det er en god ting å huske på. 1200 01:03:22,880 --> 01:03:25,864 Så nå som vi har vår pekeren, hva gjør vi med det? 1201 01:03:25,864 --> 01:03:27,780 Jeg ber dere å skriver det ut, ikke sant? 1202 01:03:27,780 --> 01:03:30,940 Så [uhørbart], vil du gi meg linje med kode? 1203 01:03:30,940 --> 01:03:31,780 >> PUBLIKUM: printf-- 1204 01:03:31,780 --> 01:03:32,446 >> ANDI PENG: Yeah. 1205 01:03:32,446 --> 01:03:35,344 1206 01:03:35,344 --> 01:03:36,843 PUBLIKUM: --du trenger et sted holder. 1207 01:03:36,843 --> 01:03:37,340 ANDI PENG: Yup. 1208 01:03:37,340 --> 01:03:38,334 PUBLIKUM: Print stedet holderen. 1209 01:03:38,334 --> 01:03:40,322 Jeg vet ikke hva stedet holderen er, men peker på det. 1210 01:03:40,322 --> 01:03:40,819 >> OK. 1211 01:03:40,819 --> 01:03:42,027 La oss hoppe over det for nå da. 1212 01:03:42,027 --> 01:03:44,556 PUBLIKUM: Og så comma-- 1213 01:03:44,556 --> 01:03:45,720 >> ANDI PENG: Pointer, ikke sant? 1214 01:03:45,720 --> 01:03:47,970 >> PUBLIKUM: Pointer, yup. 1215 01:03:47,970 --> 01:03:51,140 >> ANDI PENG: Så snill av et lurespørsmål, har å gjøre med pekere og strenger 1216 01:03:51,140 --> 01:03:53,130 som vi har på en måte snakket om allerede. 1217 01:03:53,130 --> 01:03:57,766 Hva slags sted holderen gjør vi trenger for en peker til en char *? 1218 01:03:57,766 --> 01:03:59,574 >> PUBLIKUM: [uhørlig]. 1219 01:03:59,574 --> 01:04:00,240 ANDI PENG: Yeah. 1220 01:04:00,240 --> 01:04:02,522 Det er enklere enn dere tror det er. 1221 01:04:02,522 --> 01:04:03,230 PUBLIKUM: String? 1222 01:04:03,230 --> 01:04:04,730 ANDI PENG: Det er bare en streng, akkurat. 1223 01:04:04,730 --> 01:04:06,595 Fordi huske strenger vet egentlig ikke eksisterer. 1224 01:04:06,595 --> 01:04:09,430 En char * er nøyaktig samme som en streng. 1225 01:04:09,430 --> 01:04:14,461 Og så egentlig dette s er hva burde vært brukt hele tiden. 1226 01:04:14,461 --> 01:04:14,960 OK. 1227 01:04:14,960 --> 01:04:17,810 >> La oss se om vi kan prøve å kjøre dette. 1228 01:04:17,810 --> 01:04:19,450 La oss gjøre en make forlengelse. 1229 01:04:19,450 --> 01:04:22,710 1230 01:04:22,710 --> 01:04:23,396 Kjølig. 1231 01:04:23,396 --> 01:04:28,830 Dere se hvordan jeg passerte i psset7.zip og finalpaper.docx, 1232 01:04:28,830 --> 01:04:32,500 og det skrives bare ut .zip og .docx? 1233 01:04:32,500 --> 01:04:34,150 Gir mening? 1234 01:04:34,150 --> 01:04:36,660 >> OK Så jeg tror i ditt utseende opp funksjonen i PSet du er 1235 01:04:36,660 --> 01:04:41,050 kommer til å bli spurt om strengen har en viss avslutning, 1236 01:04:41,050 --> 01:04:42,800 du må gi en viss feilkode. 1237 01:04:42,800 --> 01:04:44,820 Og så dette blir ganske forferdelig. 1238 01:04:44,820 --> 01:04:47,350 Fordi hvis du kan finne ut hva utvidelsen er, 1239 01:04:47,350 --> 01:04:49,810 du kan deretter sammenligne det forlengelse for å se om det samsvarer med 1240 01:04:49,810 --> 01:04:51,251 med en viss forlengelse. 1241 01:04:51,251 --> 01:04:53,250 Og så kan du gå tilbake en feilmelding, ikke sant? 1242 01:04:53,250 --> 01:04:53,860 Yeah. 1243 01:04:53,860 --> 01:04:55,370 >> PUBLIKUM: Så gjør vi ikke må legge til 1 eller noe? 1244 01:04:55,370 --> 01:04:56,530 Pekeren vil gå til the-- 1245 01:04:56,530 --> 01:04:56,660 >> ANDI PENG: Nope. 1246 01:04:56,660 --> 01:04:57,530 >> PUBLIKUM: --point etter det. 1247 01:04:57,530 --> 01:04:58,196 >> ANDI PENG: Yeah. 1248 01:04:58,196 --> 01:05:00,650 Den peker nøyaktig til hvor forekomsten var. 1249 01:05:00,650 --> 01:05:04,010 Så for eksempel her, vi er søker etter den perioden. 1250 01:05:04,010 --> 01:05:06,597 Så det kommer til å gå tilbake en peker til perioden. 1251 01:05:06,597 --> 01:05:08,930 Og så kommer det til å skrive ut ved å gå ut på perioden. 1252 01:05:08,930 --> 01:05:10,260 >> Slik at du ikke trenger å legge til en. 1253 01:05:10,260 --> 01:05:15,000 Selv om det er helt greit å, hvis du er usikker, å bare slags 1254 01:05:15,000 --> 01:05:16,070 av teste det ut selv. 1255 01:05:16,070 --> 01:05:17,590 Bygge et prøveprogram. 1256 01:05:17,590 --> 01:05:20,240 Test det ut selv og se hvor det er utskrift. 1257 01:05:20,240 --> 01:05:23,380 Det er heller ikke en dårlig måte å gjøre det. 1258 01:05:23,380 --> 01:05:26,040 >> Kjølig. 1259 01:05:26,040 --> 01:05:28,880 Og det er ganske mye alt Jeg hadde for dere i dag. 1260 01:05:28,880 --> 01:05:31,440 1261 01:05:31,440 --> 01:05:33,300 Vi gjorde mye PSet ting i dag. 1262 01:05:33,300 --> 01:05:35,720 Så når du er i tvil, som Jeg sa alltid se opp 1263 01:05:35,720 --> 01:05:37,620 den string.h bibliotek for dette PSet. 1264 01:05:37,620 --> 01:05:40,370 Det kommer til å bli mye funksjon i det som kan være nyttig. 1265 01:05:40,370 --> 01:05:41,300 Noen kan ikke være nyttige. 1266 01:05:41,300 --> 01:05:42,133 Jeg vet egentlig ikke. 1267 01:05:42,133 --> 01:05:44,370 Wade gjennom det, det er en hel haug av dem. 1268 01:05:44,370 --> 01:05:49,100 strstr, strchr, strrchr er super, super nyttig, samt 1269 01:05:49,100 --> 01:05:52,080 de strcpys og strcasecmps at vi allerede har brukt. 1270 01:05:52,080 --> 01:05:56,510 >> Det er bare masse rote rundt med strenger, avgjøre om de er like, 1271 01:05:56,510 --> 01:05:59,960 å få ting ut av strenger, og å kunne åpne filene korrekt. 1272 01:05:59,960 --> 01:06:02,252 Det er mye av fil I / O. PSet er egentlig ikke så ille. 1273 01:06:02,252 --> 01:06:04,210 Du kommer til å ta en ser på det, laste den ned, 1274 01:06:04,210 --> 01:06:05,590 og se en hel haug med kode. 1275 01:06:05,590 --> 01:06:09,220 Ingen fare, den koden du faktisk skrive er ikke dårlig i det hele tatt. 1276 01:06:09,220 --> 01:06:12,870 Hvis noen har problemer med sine server, kom og se meg etter pkt. 1277 01:06:12,870 --> 01:06:16,040 >> Beklager nok en gang for ikke bringe godteri til Halloween. 1278 01:06:16,040 --> 01:06:18,790 Jeg vet ikke hva som var galt med meg. 1279 01:06:18,790 --> 01:06:20,800 Men vi vil ha dobbelt godteri neste gang. 1280 01:06:20,800 --> 01:06:25,620 Og lykke til i din PSet denne uken. 1281 01:06:25,620 --> 01:06:27,170 Jepp. 1282 01:06:27,170 --> 01:06:28,722