1 00:00:00,000 --> 00:00:05,410 2 00:00:05,410 --> 00:00:08,770 >> ANDI PENG: Jesteśmy prawie przez wszystkie psets. 3 00:00:08,770 --> 00:00:12,080 W rzeczywistości, jesteśmy przez większość z najtrudniejszych psets. 4 00:00:12,080 --> 00:00:14,350 Więc jesteśmy właściwie tylko zamiar rodzaju wietrze 5 00:00:14,350 --> 00:00:16,050 przez następne kilka tygodni. 6 00:00:16,050 --> 00:00:19,520 >> Mamy zamiar zacząć mówić o naszym projekty końcowe wydarzenia wymyślanie 7 00:00:19,520 --> 00:00:21,320 w ciągu najbliższych kilku tygodni. 8 00:00:21,320 --> 00:00:23,825 A życie będzie proste. 9 00:00:23,825 --> 00:00:26,510 10 00:00:26,510 --> 00:00:27,680 Więc nie za dużo dzisiaj. 11 00:00:27,680 --> 00:00:30,280 >> Mam nadzieję, że będzie faktycznie wiatr przez agendy dziś 12 00:00:30,280 --> 00:00:33,400 a potem się stąd z jakiegoś wolnego czasu. 13 00:00:33,400 --> 00:00:36,210 Ponadto chcę przeprosić za brak cukierków dzisiaj. 14 00:00:36,210 --> 00:00:37,030 Nie wiem dlaczego. 15 00:00:37,030 --> 00:00:40,520 Ale w tygodniu poprzedzającym Halloween, mogłem zapomnieć o słodycze. 16 00:00:40,520 --> 00:00:43,290 >> Więc jestem właściwie tylko ogromna rozczarowaniem dla ciebie teraz. 17 00:00:43,290 --> 00:00:47,050 Bo dosłownie pamiętać, cukierki dla każdej klasy, ale Halloween. 18 00:00:47,050 --> 00:00:49,345 Ale w przyszłym tygodniu, sprowadzę podwoić ilość cukierków 19 00:00:49,345 --> 00:00:50,720 w celu uzupełnienia, że ​​wszystko dla Ciebie. 20 00:00:50,720 --> 00:00:53,260 Będzie świetnie. 21 00:00:53,260 --> 00:00:56,690 >> Więc mam kilka ogłoszeń dotyczące jakiegoś harmonogramu. 22 00:00:56,690 --> 00:00:59,520 Mam pewne problemy planowania. 23 00:00:59,520 --> 00:01:02,150 Następnie idziemy, aby przejść do rozmawiać o tym, co się nazywa chmod. 24 00:01:02,150 --> 00:01:05,980 Mamy zamiar rozmawiać o szybko, TCP / IP, HTTP. 25 00:01:05,980 --> 00:01:09,770 >> A potem będziemy kodować nasze własną stronę internetową za pomocą HTML i CSS. 26 00:01:09,770 --> 00:01:13,030 A potem będę faktycznie opuszcza może jak 20 minut, aby porozmawiać o pset6. 27 00:01:13,030 --> 00:01:16,550 Ponieważ pset6 jest rzeczywiście dużo rzeczy, które widzieliśmy już wcześniej, 28 00:01:16,550 --> 00:01:19,090 ale chciałem odświeżyć niektóre z tych pojęć 29 00:01:19,090 --> 00:01:22,140 a także nauczyć kilku nowych funkcji. 30 00:01:22,140 --> 00:01:23,110 >> Chłodny. 31 00:01:23,110 --> 00:01:25,440 Więc przede wszystkim, Witaj ponownie z przerwą. 32 00:01:25,440 --> 00:01:27,410 Mam nadzieję, że przerwa była przyjemna. 33 00:01:27,410 --> 00:01:29,695 Czy robiłeś w przerwie? 34 00:01:29,695 --> 00:01:30,820 PUBLICZNOŚCI: Poszedłem do Nowego Jorku. 35 00:01:30,820 --> 00:01:32,030 ANDI PENG: Poszedłeś do Nowego Jorku? 36 00:01:32,030 --> 00:01:33,738 Myślę, że połowa naszej szkoły udał się do Nowego Jorku. 37 00:01:33,738 --> 00:01:34,740 Nic się nie stało. 38 00:01:34,740 --> 00:01:38,250 Spędziłem większość mojego przerwy siedzący tryb życia w łóżku Netflixing. 39 00:01:38,250 --> 00:01:39,760 I to był dobry czas. 40 00:01:39,760 --> 00:01:43,450 >> Ale teraz jesteśmy z powrotem, z powrotem w sesji, już w huśtawka rzeczy. 41 00:01:43,450 --> 00:01:47,900 Mamy pset należytej ten piątek w południe. 42 00:01:47,900 --> 00:01:50,240 >> Myślę, że już mam podniósł quiz, tak? 43 00:01:50,240 --> 00:01:52,140 Więc każdy, kto ma Nie mieli swoje quizy, 44 00:01:52,140 --> 00:01:55,416 proszę przyjść i uzyskać quizy mnie na końcu sekcji. 45 00:01:55,416 --> 00:01:56,540 Lub śledzić mnie na kampusie. 46 00:01:56,540 --> 00:01:59,310 Muszę go ze mną gdzieś. 47 00:01:59,310 --> 00:02:02,120 >> Nasz ostatni projekt wstępnie propozycję również. 48 00:02:02,120 --> 00:02:06,380 Więc dla tych z nas, którzy nigdy nie miały ta klasa wcześniej, zwieńczeniem CS50 49 00:02:06,380 --> 00:02:11,150 Kulminacją jest bardzo w tym wielki projekt, który uczniowie proponują. 50 00:02:11,150 --> 00:02:14,300 Oraz wniosku wstępnego, tylko ogólny pomysł 51 00:02:14,300 --> 00:02:18,500 co może chcieć zrobić dla ich Projekt, ze względu, że pomysł jest poniedziałek, 52 00:02:18,500 --> 00:02:20,780 następny poniedziałek w południe. 53 00:02:20,780 --> 00:02:23,800 >> Więc dość dużo, David myślę, że będzie porozmawiać o tym w wykładzie 54 00:02:23,800 --> 00:02:25,390 jeśli nie ma już. 55 00:02:25,390 --> 00:02:28,710 I jest solidna strona na naszej stronie internetowej, wyjaśniając 56 00:02:28,710 --> 00:02:31,610 wszystkie wymagania projektu. 57 00:02:31,610 --> 00:02:34,082 Ale zasadniczo, pick każdy temat, że masz 58 00:02:34,082 --> 00:02:35,915 interesowałem się przez cały czas tutaj 59 00:02:35,915 --> 00:02:41,760 w CS, czy to w grach lub projektu lub wideo albo coś. 60 00:02:41,760 --> 00:02:44,920 >> I można naprawdę rodzaj Teraz stosuje się niektórych lekcji 61 00:02:44,920 --> 00:02:52,470 że nauczyliśmy się tu w CS50-- hi, welcome-- do prawie prowadzenie 62 00:02:52,470 --> 00:02:56,320 ostateczny projekt wyboru. 63 00:02:56,320 --> 00:02:59,570 Wszystko to z powodu poniedziałek jest tylko krótki krótką informację przez e-mail 64 00:02:59,570 --> 00:03:02,010 do mnie, szybkie zdanie, jak, hej, Andi, 65 00:03:02,010 --> 00:03:06,490 Jestem bardzo zainteresowany w projektowaniu to gra, która robi to dla iOS. 66 00:03:06,490 --> 00:03:07,420 Chłodny. 67 00:03:07,420 --> 00:03:10,767 Po prostu daj mi swój krótki inicjał pomysły na ostatecznych projektów. 68 00:03:10,767 --> 00:03:13,850 I porozmawiamy przez czy to jest rzeczywiście dobry pomysł, czy nie, 69 00:03:13,850 --> 00:03:15,590 jeśli jest to możliwe, pomysł, czy nie. 70 00:03:15,590 --> 00:03:20,760 Ale wniosku wstępnego wynika w następny poniedziałek. 71 00:03:20,760 --> 00:03:24,190 pset6, nasz piękny web--, że jest źle. 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 To pset6, prawda? 75 00:03:26,680 --> 00:03:32,690 >> pset6, nasz serwer, to ze względu Piątek w południe z końca dnia. 76 00:03:32,690 --> 00:03:37,660 Godziny urzędowania od poniedziałku wznowić normalnie do czwartku w godzinach 8:00 do 11:00 w tym tygodniu. 77 00:03:37,660 --> 00:03:39,710 Myślę Commons dla kolejne trzy noce. 78 00:03:39,710 --> 00:03:40,310 Chłodny. 79 00:03:40,310 --> 00:03:44,260 Zanim mieliśmy do materiału, czy ktoś masz jakieś pytania, żarty, historie? 80 00:03:44,260 --> 00:03:46,662 Co zrobiłeś dla upadku przerwie? 81 00:03:46,662 --> 00:03:48,640 >> PUBLICZNOŚCI: Co mam zrobić? 82 00:03:48,640 --> 00:03:52,834 >> ANDI PENG: Już to wieki temu faktycznie. 83 00:03:52,834 --> 00:03:54,000 Christabel udał się do Nowego Jorku. 84 00:03:54,000 --> 00:03:55,614 Byłem tu i Netflixed. 85 00:03:55,614 --> 00:03:56,864 PUBLICZNOŚCI: Oh, tak byłem tutaj. 86 00:03:56,864 --> 00:03:57,614 ANDI PENG: Och, OK. 87 00:03:57,614 --> 00:03:59,792 PUBLICZNOŚCI: nie pamiętam co konkretnie. 88 00:03:59,792 --> 00:04:00,710 ANDI PENG: To jest OK. 89 00:04:00,710 --> 00:04:01,960 PUBLICZNOŚCI: Netflixing pewnie. 90 00:04:01,960 --> 00:04:02,990 ANDI PENG: Netflixing. 91 00:04:02,990 --> 00:04:04,710 Tak, to jest dobry moment. 92 00:04:04,710 --> 00:04:05,780 OK. 93 00:04:05,780 --> 00:04:06,340 W porządku. 94 00:04:06,340 --> 00:04:08,877 Wszelkie pytania przed wskakujemy do materiału? 95 00:04:08,877 --> 00:04:11,210 Ponadto, mamy zamiar spróbować przyspieszyć poprzez rozdział dzisiaj, 96 00:04:11,210 --> 00:04:12,504 nie za dużo na pokrycie. 97 00:04:12,504 --> 00:04:14,420 I miejmy nadzieję, będziemy mieli tu trochę za wcześnie. 98 00:04:14,420 --> 00:04:15,580 Przepraszam za nie słodycze, również. 99 00:04:15,580 --> 00:04:20,310 Jestem rozczarowaniem szczególnie podczas Halloween. 100 00:04:20,310 --> 00:04:21,110 >> W porządku. 101 00:04:21,110 --> 00:04:21,810 Chłodny. 102 00:04:21,810 --> 00:04:28,370 Tak więc mamy zamiar zacząć mówić o argument wiersza poleceń o nazwie chmod. 103 00:04:28,370 --> 00:04:32,850 chmod, wszystko to jest tylko system Unix zadzwoń prowadzone z wiersza poleceń 104 00:04:32,850 --> 00:04:34,700 zmienić uprawnienia plików. 105 00:04:34,700 --> 00:04:37,790 Tak na przykład, mamy wszystkie napotkane stronę 106 00:04:37,790 --> 00:04:40,550 tak pewnie kiedyś w nasza żywotność bycia www 107 00:04:40,550 --> 00:04:45,110 Użytkownik, gdzie nasz serwer ma dał nam błąd Zakazane. 108 00:04:45,110 --> 00:04:49,086 Nie masz uprawnień do dostępu, pierdu, pierdu, pierdu, na tym serwerze. 109 00:04:49,086 --> 00:04:50,960 Wszystko, co naprawdę znaczy jest to, że uprawnienia 110 00:04:50,960 --> 00:04:53,920 które zostały załączone do tego, co Strona, którą próbujesz się dostać 111 00:04:53,920 --> 00:04:55,840 nie były otwarte dla Ciebie. 112 00:04:55,840 --> 00:04:57,870 Więc dość dużo, chmod jest to sposób, w którym 113 00:04:57,870 --> 00:05:02,140 możemy modyfikować te uprawnienia systemu dać każdemu, użytkownik, grupa, 114 00:05:02,140 --> 00:05:04,975 czy świat, czy jakakolwiek Połączenie tych dostępem 115 00:05:04,975 --> 00:05:07,900 do niektórych plików, katalogi, wszystko naprawdę, 116 00:05:07,900 --> 00:05:11,720 każdy rodzaj systemu, system operacyjny. 117 00:05:11,720 --> 00:05:14,039 Jeśli więc któryś z chłopaków ma komputery, jeśli czujesz, 118 00:05:14,039 --> 00:05:17,080 jak po dziś ze mną, zupełnie nie krępuj się po prostu wpisz rzeczy 119 00:05:17,080 --> 00:05:17,580 w. 120 00:05:17,580 --> 00:05:19,790 Jeśli nie, możesz po prostu spędzać czas. 121 00:05:19,790 --> 00:05:23,170 Więc mam zamiar faktycznie pociągnąć się moim terminalu teraz. 122 00:05:23,170 --> 00:05:29,810 123 00:05:29,810 --> 00:05:32,310 >> Tak więc polecenie, aby uruchomić chmod, a przynajmniej tak 124 00:05:32,310 --> 00:05:37,840 do listy uprawnienia swoje Katalog plików, to tylko ls-l. 125 00:05:37,840 --> 00:05:42,270 Jak widać, kilka rzeczy wyskakuje z których większość 126 00:05:42,270 --> 00:05:45,390 jest dla nas ważne na tu strona lewa. 127 00:05:45,390 --> 00:05:48,710 Wy zobaczyć kilka rs, ws, 1 /. 128 00:05:48,710 --> 00:05:49,210 Tak. 129 00:05:49,210 --> 00:05:51,400 >> Są to w zasadzie tylko wszystkie uprawnienia do pliku 130 00:05:51,400 --> 00:05:55,960 wyjaśnić, co niektóre katalogi i pliki w systemie mają. 131 00:05:55,960 --> 00:05:58,150 Więc wróćmy do Chodzi o moc. 132 00:05:58,150 --> 00:06:02,450 133 00:06:02,450 --> 00:06:06,500 Tak więc, oprócz nazwach jak chłopaki widać po prawej stronie, 134 00:06:06,500 --> 00:06:10,312 szukamy zobaczyć zasadniczo po prostu kolumna po lewej stronie. 135 00:06:10,312 --> 00:06:12,020 Tak więc dodatkowo do właśnie nazwy plików, możemy 136 00:06:12,020 --> 00:06:16,240 Można zobaczyć prawa dostępu do plików, ich Grupa właściciel, nazwa grupy, data 137 00:06:16,240 --> 00:06:18,460 że plik był ostatnio zmodyfikowane, et cetera. 138 00:06:18,460 --> 00:06:20,640 Można zobaczyć wiele rzeczy za pomocą chmod. 139 00:06:20,640 --> 00:06:26,037 Tak więc sposób, w jaki czytamy chmod jest to, że pierwsza litera dość dużo ignorować 140 00:06:26,037 --> 00:06:27,370 w zakresie uprawnień do czytania. 141 00:06:27,370 --> 00:06:31,460 >> Pierwsza litera po prostu mówi nam, co typ systemu mamy dostęp. 142 00:06:31,460 --> 00:06:34,240 d, w tym przypadku jest folderu lub katalogu. 143 00:06:34,240 --> 00:06:38,430 Więc wiemy, że obecnie moje miejsce pracy Sekcja siedem było katalogiem. 144 00:06:38,430 --> 00:06:41,530 A potem widzisz trzy triady, w zasadzie tylko 145 00:06:41,530 --> 00:06:43,490 trzy zestawy trzech znaków. 146 00:06:43,490 --> 00:06:45,680 A może uważasz, że każdego jako trochę. 147 00:06:45,680 --> 00:06:49,260 >> Więc po prostu trzy zestawy trzy bity, dziewięć bitów w sumie. 148 00:06:49,260 --> 00:06:51,420 Traktujesz je w grupach po trzy. 149 00:06:51,420 --> 00:06:56,230 Tak, że pierwsza grupa trzech jest zawsze uprawnień użytkownika. 150 00:06:56,230 --> 00:07:00,557 >> Twoja druga grupa trzech jest zawsze swoje uprawnienia grupy. 151 00:07:00,557 --> 00:07:02,765 A twój trzeci zestaw trzech zawsze jest jak świat, 152 00:07:02,765 --> 00:07:04,380 że wszędzie uprawnienia. 153 00:07:04,380 --> 00:07:06,320 Sądzę więc, że proste pytaniem jest to, co jest 154 00:07:06,320 --> 00:07:08,051 Różnica pomiędzy użytkownikiem a grupy. 155 00:07:08,051 --> 00:07:09,800 Główna różnica między użytkownikiem i grupy 156 00:07:09,800 --> 00:07:13,180 jest to, że użytkownik jest tylko osobiście dostępu, co jest teraz. 157 00:07:13,180 --> 00:07:18,070 Grupa może być, jeśli masz wiele użytkowników na jednym komputerze, na przykład. 158 00:07:18,070 --> 00:07:20,280 Wszystkie z nich mogą być traktowane jako grupy. 159 00:07:20,280 --> 00:07:23,220 >> A potem świat tylko świat, każdy. 160 00:07:23,220 --> 00:07:31,010 Tak więc widzimy, później, jak się da modyfikacji tych, na różne uprawnienia. 161 00:07:31,010 --> 00:07:33,080 Więc dość dużo, jesteśmy będzie nadal koncentrować się 162 00:07:33,080 --> 00:07:38,450 na części po lewej stronie, gdzie dla CS50 katalogu widzimy drwx, 163 00:07:38,450 --> 00:07:40,970 gdzie R oznacza po prostu, że to czytelny. 164 00:07:40,970 --> 00:07:42,620 >> The W po prostu oznacza, że ​​jest zapisywalny. 165 00:07:42,620 --> 00:07:45,470 A potem x tak Oznacza to plik wykonywalny. 166 00:07:45,470 --> 00:07:47,220 Można by to, że rodzaj z nie ma sensu. 167 00:07:47,220 --> 00:07:47,993 Powinien to być np. 168 00:07:47,993 --> 00:07:50,150 Ale x właściwie rodzaj działa trochę lepiej, 169 00:07:50,150 --> 00:07:51,690 ponieważ można zapamiętać to lepiej. 170 00:07:51,690 --> 00:07:56,406 >> Tak więc trzy rodzaje rzeczy może to zrobić, możesz odczytać plik, 171 00:07:56,406 --> 00:07:59,280 możesz mieć uprawnienia, aby napisać plik, lub możesz mieć pozwolenie 172 00:07:59,280 --> 00:08:00,780 wykonać pliku. 173 00:08:00,780 --> 00:08:04,580 I tak droga, że ​​w rzeczywistości stanowią te, w bitach 174 00:08:04,580 --> 00:08:06,940 jest numerem 4, 2 i 1. 175 00:08:06,940 --> 00:08:12,870 Więc wszystko to czytelny jest reprezentowane przez liczbę 4. 176 00:08:12,870 --> 00:08:15,150 >> Wszystko to jest zapisywalny reprezentowany przez 2. 177 00:08:15,150 --> 00:08:18,880 A wszystko, co jest wykonywalny reprezentowane przez 1. 178 00:08:18,880 --> 00:08:22,860 Więc w tym sensie, możemy również reprezentowania tych numbers-- 179 00:08:22,860 --> 00:08:25,281 Cześć, witamy w inny sposób. 180 00:08:25,281 --> 00:08:25,780 Przepraszam. 181 00:08:25,780 --> 00:08:28,510 Przed wszystkim, mam zamiar Przepraszam w imieniu wszystkich 182 00:08:28,510 --> 00:08:29,468 wprowadzając klasę teraz. 183 00:08:29,468 --> 00:08:30,810 Zapomniałem cukierki dziś. 184 00:08:30,810 --> 00:08:33,640 Przykro mi, że jestem porażka w tym tygodniu Halloween. 185 00:08:33,640 --> 00:08:37,070 Sprowadzę podwójną ilość cukierki następnym razem, aby to nadrobić. 186 00:08:37,070 --> 00:08:42,360 Ale tak czy inaczej, przepraszam o tym, że faceci, przepraszam. 187 00:08:42,360 --> 00:08:46,640 >> Więc sposób, że możemy rzeczywiście wejście na naszej komendy argumentem jest to 188 00:08:46,640 --> 00:08:51,760 może zrobić uprawnienia grupy ukośnymi chmod, gdzie grupa jest tylko cokolwiek 189 00:08:51,760 --> 00:08:54,130 Grupa staramy się zmienić. 190 00:08:54,130 --> 00:08:56,600 I uprawnienia są co chcemy, aby dodać do niego. 191 00:08:56,600 --> 00:08:58,860 Tak na przykład, oraz dodaje uprawnienia, 192 00:08:58,860 --> 00:09:01,590 i odejmowania odbiera uprawnienia. 193 00:09:01,590 --> 00:09:07,060 >> I rodzaje grup mamy A dla wszystkich u użytkowników, g w grupach 194 00:09:07,060 --> 00:09:09,050 lub o innych. 195 00:09:09,050 --> 00:09:10,300 To trochę abstrakcyjne teraz. 196 00:09:10,300 --> 00:09:13,550 Ale pójdziemy na kilka przykładów wystarczy wykazać, to bardzo szybko. 197 00:09:13,550 --> 00:09:16,960 Wszyscy dobrze o tym zjeżdżalnia, więc mogę przejść? 198 00:09:16,960 --> 00:09:18,280 Chłodny. 199 00:09:18,280 --> 00:09:21,290 >> Tak na przykład, rwx. 200 00:09:21,290 --> 00:09:26,720 Zanim zaczniemy mówić o tym, co oznacza, Przede wszystkim co to rwx oznacza? 201 00:09:26,720 --> 00:09:31,450 Jeśli widzisz, że to pewne plik ma uprawnienia rwx, 202 00:09:31,450 --> 00:09:34,270 co to znaczy, osoba może być w stanie to zrobić? 203 00:09:34,270 --> 00:09:35,740 >> PUBLICZNOŚCI: odczytu, zapisu i wykonania. 204 00:09:35,740 --> 00:09:36,420 >> ANDI PENG: Tak, dokładnie. 205 00:09:36,420 --> 00:09:37,840 Możesz przeczytać zapisu i wykonania. 206 00:09:37,840 --> 00:09:40,790 Ponieważ wszystkie te trzy Znaki są obecne. 207 00:09:40,790 --> 00:09:44,370 Więc jeśli mamy iść do przodu i mówić na ten temat w odniesieniu do bitów 208 00:09:44,370 --> 00:09:48,490 rwx może być również przedstawiony jako 700. 209 00:09:48,490 --> 00:09:53,370 Bo jak widać w każdym rodzaj uprawnienia do katalogu plików, 210 00:09:53,370 --> 00:09:54,320 tam trzy triady. 211 00:09:54,320 --> 00:09:58,060 >> W tym przypadku, tylko pierwsza Triada ma coś tam. 212 00:09:58,060 --> 00:10:04,050 Tak więc w tym przypadku, R oznacza 4, W jest 2, a x wynosi 1. 213 00:10:04,050 --> 00:10:05,860 Jeśli dodać te, razem, to jest 7. 214 00:10:05,860 --> 00:10:08,730 >> I tak, jeśli konwersja to na binarny, to 700. 215 00:10:08,730 --> 00:10:10,310 7, ponieważ jest pierwszym triad. 216 00:10:10,310 --> 00:10:12,760 0, nic nie występuje w drugim triadę. 217 00:10:12,760 --> 00:10:15,850 A potem nic nie występuje w trzecia triada, więc to już inna 0. 218 00:10:15,850 --> 00:10:22,520 >> Tak więc w tym samym sensie, kilka triad może być reprezentowana tylko w bitach, po prostu 219 00:10:22,520 --> 00:10:23,600 binarnie, jak również. 220 00:10:23,600 --> 00:10:29,920 Tak więc 700 oznacza dokładnie to samo co rwx ------ w zakresie uprawnień. 221 00:10:29,920 --> 00:10:32,590 Każdy jasne, że? 222 00:10:32,590 --> 00:10:33,090 Chłodny. 223 00:10:33,090 --> 00:10:40,290 I tak chmod 111 dałoby które uprawnienia do pliku? 224 00:10:40,290 --> 00:10:42,600 Ci faceci kilka sekund do konwersji tego. 225 00:10:42,600 --> 00:10:51,140 226 00:10:51,140 --> 00:10:53,250 Pamiętaj, pierwszy triady dla użytkownika. 227 00:10:53,250 --> 00:10:56,320 Drugi triady dla grupy. 228 00:10:56,320 --> 00:10:59,450 I trzecia triada jest dla wszystkich. 229 00:10:59,450 --> 00:11:03,680 >> I tak chmod 111 da które rodzaj uprawnień i do kogo? 230 00:11:03,680 --> 00:11:06,520 231 00:11:06,520 --> 00:11:09,020 Poświęć kilka sekund o tym myśleć i wrócić. 232 00:11:09,020 --> 00:11:19,790 233 00:11:19,790 --> 00:11:20,910 Tak. 234 00:11:20,910 --> 00:11:22,920 >> PUBLICZNOŚCI: Więc każdy może ją wykonać. 235 00:11:22,920 --> 00:11:23,920 ANDI PENG: Tak, dokładnie. 236 00:11:23,920 --> 00:11:25,544 PUBLICZNOŚCI: Ale nikt nie potrafi czytać ani pisać. 237 00:11:25,544 --> 00:11:27,910 ANDI PENG: I feel free do wyjaśnienia wszystkich 238 00:11:27,910 --> 00:11:29,860 w jaki sposób doszedł do tego wniosku. 239 00:11:29,860 --> 00:11:34,290 >> PUBLICZNOŚCI: Cóż, dla użytkownika, grupa, a świat, to wszystko jedno, 240 00:11:34,290 --> 00:11:35,700 który jest kod wykonywalny. 241 00:11:35,700 --> 00:11:37,070 >> ANDI PENG: Tak, dokładnie. 242 00:11:37,070 --> 00:11:42,320 Więc 1, w tym przypadku, wiemy tylko, że to jest kod wykonywalny. 243 00:11:42,320 --> 00:11:45,280 Bo czytanie jest 4. 244 00:11:45,280 --> 00:11:45,990 Pisanie to 2. 245 00:11:45,990 --> 00:11:47,230 I wykonywalny to 1. 246 00:11:47,230 --> 00:11:51,580 Tak więc wszystkie trzy triady jest to 1, które Oznacza to, że na świecie do użytkownika, 247 00:11:51,580 --> 00:11:54,680 i do grupy, są wykonywalny. 248 00:11:54,680 --> 00:11:56,170 >> Wszyscy dobrze się z tym? 249 00:11:56,170 --> 00:11:56,940 OK. 250 00:11:56,940 --> 00:11:59,180 I tak drugi sposób że możemy właściwie 251 00:11:59,180 --> 00:12:01,220 piszę to również jest to, może po prostu zrobić chmod 252 00:12:01,220 --> 00:12:05,050 plus x. środek całości lub wszystkich. 253 00:12:05,050 --> 00:12:07,060 Plus oznacza, nadając uprawnienia. 254 00:12:07,060 --> 00:12:09,112 I wtedy x oznacza wykonywalny. 255 00:12:09,112 --> 00:12:11,070 Więc nie dwa polecenia są właściwie identyczne. 256 00:12:11,070 --> 00:12:12,903 Więc jeśli chcesz uruchomić to w terminalu, 257 00:12:12,903 --> 00:12:15,830 zrobić chmod 111, nazwę Twój katalog lub plik. 258 00:12:15,830 --> 00:12:18,520 Albo możesz zrobić chmod a Plus X, nazwa pliku w katalogu. 259 00:12:18,520 --> 00:12:22,150 Samo, po prostu łatwiejszy sposób, być może, dla niektórych do reprezentowania lub zmiany 260 00:12:22,150 --> 00:12:24,280 uprawnienia do pliku. 261 00:12:24,280 --> 00:12:28,806 >> Każdy OK z chmod Zanim przejdziemy? 262 00:12:28,806 --> 00:12:31,700 Chłodny. 263 00:12:31,700 --> 00:12:35,336 Więc teraz mamy zamiar głowę w Kilka slajdów z bardzo abstrakcyjnych pojęć 264 00:12:35,336 --> 00:12:37,210 że jestem dość dużo będzie wiatr przez. 265 00:12:37,210 --> 00:12:39,530 I to jest zupełnie ok, jeśli nie wszystko rozumiem. 266 00:12:39,530 --> 00:12:42,330 >> Nawet teraz, nadal nie bardzo rozumiem kompletnie wszystko. 267 00:12:42,330 --> 00:12:44,640 Ale to bardziej się najwyższy poziom zrozumienia 268 00:12:44,640 --> 00:12:47,280 o tym, jak niektóre z tych rzeczy działa. 269 00:12:47,280 --> 00:12:50,490 Więc będziemy rozmawiać szybko o TCP / IP, 270 00:12:50,490 --> 00:12:54,880 która jest po prostu Transmission Control Protokół slash Internet Protocol. 271 00:12:54,880 --> 00:12:57,135 >> Przypomnijmy, od wykładu, David, on nauczy cię 272 00:12:57,135 --> 00:13:00,700 przykład gdzie by przejść notatki w kopercie 273 00:13:00,700 --> 00:13:02,790 do jak szczyt sali wykładowej? 274 00:13:02,790 --> 00:13:06,990 Więc w auli szkolnej prawo David wykazać zasadniczo 275 00:13:06,990 --> 00:13:10,370 jak TCP / IP pracuje w poczucie, że wszyscy go 276 00:13:10,370 --> 00:13:14,300 Jest to sposób na zapewnienie, że dane został dostarczony w poprzek serwera 277 00:13:14,300 --> 00:13:15,870 lub w Internecie. 278 00:13:15,870 --> 00:13:22,270 Tak więc na przykład koperty a komunikat użytkownikowi na koniec 279 00:13:22,270 --> 00:13:26,410 widział, że, och, ja potrzebowałem otrzyma cztery pakiety informacji. 280 00:13:26,410 --> 00:13:28,096 >> Ale faktycznie otrzymała tylko trzy. 281 00:13:28,096 --> 00:13:29,470 To znaczy, że musi być brakuje jednego. 282 00:13:29,470 --> 00:13:30,760 I nie została dostarczona. 283 00:13:30,760 --> 00:13:33,990 I tak TCP / IP w Internecie, za pośrednictwem komputera i serwera, 284 00:13:33,990 --> 00:13:35,500 robi dokładnie to samo. 285 00:13:35,500 --> 00:13:38,900 Wszystko robi to określić Ramy, w których utracone dane 286 00:13:38,900 --> 00:13:41,100 Pakiety mogą być złe i odbierane. 287 00:13:41,100 --> 00:13:44,760 >> Podobnie jak w internecie, gdy starasz aby uzyskać dostęp do plików w Internecie lub wysłać pliki 288 00:13:44,760 --> 00:13:48,210 znajomemu lub spojrzeć na sieci Przeglądarki, tysiące 289 00:13:48,210 --> 00:13:50,440 o miliardy bajtów informacji 290 00:13:50,440 --> 00:13:52,840 są przenoszone na milisekundę. 291 00:13:52,840 --> 00:13:54,560 I to bardzo, bardzo mylące. 292 00:13:54,560 --> 00:13:57,110 A jest to naprawdę trudne do naprawdę wiedzą, co zostało wysłane 293 00:13:57,110 --> 00:13:58,270 a co nie zostało wysłane. 294 00:13:58,270 --> 00:14:02,210 >> I tak, TCP / IP, tylko określa spójnych ram 295 00:14:02,210 --> 00:14:04,115 w którym swoją www Przeglądarka i serwer 296 00:14:04,115 --> 00:14:05,990 może rodzaj komunikowania się ze sobą, tylko 297 00:14:05,990 --> 00:14:08,550 upewnij się, że pakiety są wszystko tutaj i nic nie stracił 298 00:14:08,550 --> 00:14:12,700 i wszystkie dane, które są wymagane jest rzeczywiście prawidłowo wyświetlane. 299 00:14:12,700 --> 00:14:16,350 Każdy OK tylko, że bardzo krótki wysoki poziom zrozumienia? 300 00:14:16,350 --> 00:14:18,510 Chłodny. 301 00:14:18,510 --> 00:14:21,550 >> Tak więc mamy zamiar przenieść na mówić o HTTP, które 302 00:14:21,550 --> 00:14:24,610 jest po prostu Hypertext Transfer Protocol. 303 00:14:24,610 --> 00:14:32,550 HTTP, wszystko to jest to, co jakakolwiek strona lub plik jest dostępny na stronie internetowej, 304 00:14:32,550 --> 00:14:35,810 serwer zwraca błąd HTTP Kod stanu w odpowiedzi 305 00:14:35,810 --> 00:14:39,869 do wniosku upewniając się, że albo, och, ten wniosek przeszedł. 306 00:14:39,869 --> 00:14:41,410 I wszystko jest prawidłowo wyświetlane. 307 00:14:41,410 --> 00:14:43,500 Albo, oh, nie, 404. 308 00:14:43,500 --> 00:14:44,730 Coś poszło nie tak. 309 00:14:44,730 --> 00:14:45,940 Och, nie mogę wyświetlić. 310 00:14:45,940 --> 00:14:50,370 >> Wszystko to jest to, że niezależnie od próbujesz dostępu, 311 00:14:50,370 --> 00:14:55,160 używać jako użytkownik próbuje uzyskać dostęp, na internet-- prostu upewniając 312 00:14:55,160 --> 00:15:00,080 że trzeba albo powodzeniem obejrzano cokolwiek to było, czy nie 313 00:15:00,080 --> 00:15:02,080 z powodzeniem uzyskać cokolwiek to było. 314 00:15:02,080 --> 00:15:05,120 I tak statusu HTTP Kod po prostu dostarcza 315 00:15:05,120 --> 00:15:09,910 środek jest w stanie wiedzieć, czy czy nie było udane, czy nie. 316 00:15:09,910 --> 00:15:13,440 Tak na przykład, żądanie przykładów. 317 00:15:13,440 --> 00:15:16,050 >> Widać tutaj, że to zazwyczaj zazwyczaj cztery linie. 318 00:15:16,050 --> 00:15:22,530 Mamy HTTP GET 1.1, który jest po prostu Metoda żądania URL, protokół 319 00:15:22,530 --> 00:15:24,490 wersja, nazwa pola, i wartość pola. 320 00:15:24,490 --> 00:15:26,810 Tak więc nie ma potrzeby całkowitego zapamiętać cokolwiek tutaj. 321 00:15:26,810 --> 00:15:29,960 Po prostu rodzaj zapoznanie sobie z tym, jak one wyglądają. 322 00:15:29,960 --> 00:15:34,060 >> W tym przykładzie, żądanie Sposób Adres URL jest po prostu cokolwiek wniosek 323 00:15:34,060 --> 00:15:35,620 wysyłasz do serwera. 324 00:15:35,620 --> 00:15:40,710 Jak, hej, serwer, naprawdę chcę Dostęp pierdu, pierdu, pierdu, strona HTTP. 325 00:15:40,710 --> 00:15:43,785 Wersja protokołu jest tylko cokolwiek Wersja Twój komputer lub serwer 326 00:15:43,785 --> 00:15:45,490 jest używany do dostępu do informacji. 327 00:15:45,490 --> 00:15:49,510 >> Pole Nazwa jest strona lub Adres URL, że próbujesz uzyskać dostęp, 328 00:15:49,510 --> 00:15:52,610 w tym przypadku, www.apple.com. 329 00:15:52,610 --> 00:15:56,110 A wartość pola jest po prostu zazwyczaj nazwa, wartość. 330 00:15:56,110 --> 00:15:59,540 I może to być dowolny rodzaj połączenia liter lub cyfr lub cokolwiek innego. 331 00:15:59,540 --> 00:16:02,890 >> Tak więc typowy wniosek, więc co komputer faktycznie 332 00:16:02,890 --> 00:16:08,400 wysyła do serwera, który mówi, hej, wiesz, czego potrzebuję to wyświetlane, 333 00:16:08,400 --> 00:16:13,000 to jest rodzaj wniosku że faktycznie otrzymają. 334 00:16:13,000 --> 00:16:16,760 Przykładem reakcji na to, co Serwer wyśle ​​do ciebie 335 00:16:16,760 --> 00:16:20,320 byłoby niemal tak samo, z wyjątkiem kodu stanu u góry. 336 00:16:20,320 --> 00:16:24,550 Tak 200 2 0 0 jest zawsze kod status OK. 337 00:16:24,550 --> 00:16:26,050 Jak, OK, to wniosek przeszedł. 338 00:16:26,050 --> 00:16:27,980 Ty byłeś w stanie uzyskać dostęp wszystko poprawnie. 339 00:16:27,980 --> 00:16:28,810 Życie jest dobre. 340 00:16:28,810 --> 00:16:29,990 Życie jest w porządku. 341 00:16:29,990 --> 00:16:32,150 Wszystko jest zupełnie dobra. 342 00:16:32,150 --> 00:16:36,050 >> A więc to po prostu mówi przeglądarkę i Twój serwer, hej, wszystko jest dobrze. 343 00:16:36,050 --> 00:16:37,470 Mam wszystkie informacje potrzebne. 344 00:16:37,470 --> 00:16:39,160 Chłodny. 345 00:16:39,160 --> 00:16:41,790 Ale problem jest czasem problemy wymyślić 346 00:16:41,790 --> 00:16:46,850 kiedy have-- trwać Myślę Mówiłem o duplikaty. 347 00:16:46,850 --> 00:16:48,870 Musisz mniej dobrych odpowiedzi. 348 00:16:48,870 --> 00:16:52,660 >> Tak na przykład, 404 jest Page Not Found. 349 00:16:52,660 --> 00:16:54,897 Czasem mają Zakazane dostęp. 350 00:16:54,897 --> 00:16:56,730 Masz różne inne Kody stanu, że jestem 351 00:16:56,730 --> 00:16:59,688 pewien, że wszystko widział, gdy jesteś starając się zrobić badania w Internecie. 352 00:16:59,688 --> 00:17:02,300 A Twoja przeglądarka daje The, nie, nie może uzyskać dostępu. 353 00:17:02,300 --> 00:17:04,190 I jesteś jak, dobrze, bzdura. 354 00:17:04,190 --> 00:17:09,260 >> Więc po prostu bardzo dużo, nie niektóre całkiem wspólne kody stanu. 355 00:17:09,260 --> 00:17:14,109 Może zapoznania się z którymi te osoby są. 356 00:17:14,109 --> 00:17:16,000 Najśmieszniejsze, który Myślę, że kiedykolwiek słyszałem 357 00:17:16,000 --> 00:17:18,040 of-- jeśli zdarzy się wyszukać wszystkie z nich 358 00:17:18,040 --> 00:17:21,490 on-line, z jakiegoś powodu nie ma rzeczywiście prawdziwy kod stanu 359 00:17:21,490 --> 00:17:26,619 zwana 418 Jestem czajniczek. 360 00:17:26,619 --> 00:17:29,610 >> Google, gdzie Pochodzenie to było z. 361 00:17:29,610 --> 00:17:33,150 I najwyraźniej jeden aprilis Dzień parę lat temu, 362 00:17:33,150 --> 00:17:36,415 ktoś, że byłoby zabawne aby utworzyć nowy kod stanu nazwie 418 363 00:17:36,415 --> 00:17:37,380 Jestem czajniczek. 364 00:17:37,380 --> 00:17:40,760 Legalnie, nazwa ta Kod nazywa Jestem czajniczek. 365 00:17:40,760 --> 00:17:43,670 >> Nie pamiętam, co strony trzeba przejść do rzeczywiście zrobić to zmienić. 366 00:17:43,670 --> 00:17:47,955 Ale jak widać, można rzeczywiście otrzymać kod statusu jestem 367 00:17:47,955 --> 00:17:51,400 czajniczek jakoś poprzez robienie czegoś. 368 00:17:51,400 --> 00:17:54,480 Więc nie setki, a setki kodów stanu. 369 00:17:54,480 --> 00:17:56,730 >> Niektóre z nich bardziej Poczucie niż inni. 370 00:17:56,730 --> 00:18:01,430 Ale dość dużo tylko zapoznanie się z najczęstszych. 371 00:18:01,430 --> 00:18:04,090 Żądana ciała podmiot jest krótkie i grube, widocznie. 372 00:18:04,090 --> 00:18:07,990 >> Więc czasami są bardziej Błędy przerażające niż jestem czajniczek. 373 00:18:07,990 --> 00:18:11,210 Ale to jest taki, który myślę, że Ci rodzaj nadzieję trafić. 374 00:18:11,210 --> 00:18:14,130 Ale nie sądzę, że tak. 375 00:18:14,130 --> 00:18:17,260 Wszyscy dobrze na stan tylko Kody, wnioski, procesy podejmowania 376 00:18:17,260 --> 00:18:19,155 pewna informacja jest dostarczana prawidłowo? 377 00:18:19,155 --> 00:18:22,270 378 00:18:22,270 --> 00:18:26,120 >> Więc teraz jedziemy do przejścia się od zabawy w ramach sekcji dzisiaj, 379 00:18:26,120 --> 00:18:28,500 gdzie mówimy trochę o HTML. 380 00:18:28,500 --> 00:18:32,580 HTML, wszystko jest HyperText Markup Language. 381 00:18:32,580 --> 00:18:35,160 To jest po prostu średnia język używać do tworzenia wszystkich sieci 382 00:18:35,160 --> 00:18:36,690 stron w Internecie. 383 00:18:36,690 --> 00:18:39,560 >> Więc każda strona internetowa, co jest twoja ulubiona strona internetowa? 384 00:18:39,560 --> 00:18:40,855 Jaka jest twoja ulubiona strona internetowa? 385 00:18:40,855 --> 00:18:41,771 >> PUBLICZNOŚCI: [niesłyszalne]. 386 00:18:41,771 --> 00:18:42,270 387 00:18:42,270 --> 00:18:43,090 ANDI PENG: Słucham? 388 00:18:43,090 --> 00:18:43,980 >> PUBLICZNOŚCI: Tumblr. 389 00:18:43,980 --> 00:18:44,730 >> ANDI PENG: Tumblr. 390 00:18:44,730 --> 00:18:46,800 Więc Tumblr jest napisane w HTML. 391 00:18:46,800 --> 00:18:50,700 A więc będziemy rzeczywiście przejść i bawić się z niektórych z tych rzeczy 392 00:18:50,700 --> 00:18:51,980 później. 393 00:18:51,980 --> 00:18:54,980 Prawie wszystko ci trzeba się nauczyć, aby wiedzieć, 394 00:18:54,980 --> 00:18:58,540 napisać HTML można chyba tylko Google w internecie. 395 00:18:58,540 --> 00:19:04,490 >> HTML, to nie jest program jak C gdzie można tworzyć zmienne i robić 396 00:19:04,490 --> 00:19:05,600 fajne rzeczy z nim. 397 00:19:05,600 --> 00:19:08,747 To jest bardziej po prostu, no, to jak ja aby sprawy pojawiają się na mojej stronie internetowej. 398 00:19:08,747 --> 00:19:10,080 A ja po prostu będzie umieścić go w. 399 00:19:10,080 --> 00:19:12,160 I to będzie go tytułować. 400 00:19:12,160 --> 00:19:15,650 >> Więc HTML, w pewnym sensie, to jak język formatowania lub szablonu. 401 00:19:15,650 --> 00:19:16,680 Jest to o wiele łatwiejsze. 402 00:19:16,680 --> 00:19:19,030 Jest to o wiele łatwiejsze, aby dowiedzieć się, o wiele łatwiej napisać w 403 00:19:19,030 --> 00:19:21,450 niż typowy programowania język, bardzo łatwe, 404 00:19:21,450 --> 00:19:24,310 bardzo łatwy dostęp i przyjazny. 405 00:19:24,310 --> 00:19:29,040 >> Więc jesteśmy naprawdę dzieje się grać wokół, pisać własne strony dzisiaj. 406 00:19:29,040 --> 00:19:32,900 Ale zanim zaczniemy, ja po prostu chcę przejść kilka krótkich najlepszych praktyk. 407 00:19:32,900 --> 00:19:35,660 Ponieważ HTML takie jest łatwe język, a ponieważ nawet 408 00:19:35,660 --> 00:19:39,012 jeśli nie kilka rzeczy źle, czasami nie zauważyć, 409 00:19:39,012 --> 00:19:41,970 chcemy, aby upewnić się, że jesteśmy rzeczywiście stosując się do naszych najlepszych praktyk 410 00:19:41,970 --> 00:19:44,490 aby upewnić się, że rzeczy, które może być dzieje wokół, ale 411 00:19:44,490 --> 00:19:49,660 Nie zawsze będą nie idź w prawo upewnij się, że są one ograniczone do minimum. 412 00:19:49,660 --> 00:19:53,570 >> Więc dość dużo, upewnij się, Twoje zamykające wszystkie tagi 413 00:19:53,570 --> 00:19:54,737 jeśli piszesz w HTML. 414 00:19:54,737 --> 00:19:56,486 Jeśli otwarcie ciała, upewnij się, że jesteś 415 00:19:56,486 --> 00:19:58,015 zamykając go z ciała gdzieś. 416 00:19:58,015 --> 00:20:00,720 Chcesz, aby upewnić się, że strona sprawdza za pomocą 417 00:20:00,720 --> 00:20:02,070 co nazywa W3 Validator. 418 00:20:02,070 --> 00:20:05,460 Można tylko Google, że w Internecie, i tam jest link do niego. 419 00:20:05,460 --> 00:20:07,820 >> A potem chcesz oddzielne HTML, które 420 00:20:07,820 --> 00:20:13,060 jest język znaczników ze swojego stylu, który jest językiem CSS, że David 421 00:20:13,060 --> 00:20:17,510 pokazały, że jesteśmy również do gry nieco z wykładu. 422 00:20:17,510 --> 00:20:19,120 Chłodny. 423 00:20:19,120 --> 00:20:23,500 Więc kiedy tylko chcesz, aby uruchomić Kopiuj na urządzeniu CS50, 424 00:20:23,500 --> 00:20:26,240 mamy zamiar uruchomić Program o nazwie Apache, 425 00:20:26,240 --> 00:20:29,810 które jest po prostu wbudowany serwer WWW, że wszyscy w CS50 426 00:20:29,810 --> 00:20:31,410 ma dostęp do. 427 00:20:31,410 --> 00:20:35,700 Nazywamy to apache50 tylko dlatego, że jak to nazwać wszystko 50 w CS50. 428 00:20:35,700 --> 00:20:39,610 >> Więc sposób, że po uruchomieniu sieci CS50 Serwer jest przez wpisanie na poleceniu 429 00:20:39,610 --> 00:20:42,860 Linia apache50 rozpocząć kropkę. 430 00:20:42,860 --> 00:20:46,665 A jeśli chcesz ją zakończyć w dowolnym czas, ty apache50 końca nie kropka. 431 00:20:46,665 --> 00:20:47,910 A ty po prostu wciskamy Enter. 432 00:20:47,910 --> 00:20:50,810 I powinna być pozycja się tu wkrótce. 433 00:20:50,810 --> 00:20:53,630 434 00:20:53,630 --> 00:20:54,130 Tak. 435 00:20:54,130 --> 00:20:58,110 Więc jestem po prostu szybko przejść przykładem bardzo krótkiej stronie internetowej. 436 00:20:58,110 --> 00:21:00,280 I mamy zamiar spędzić jak 10, 15 minut gry 437 00:21:00,280 --> 00:21:04,008 wokół pisania własnych stron internetowych. 438 00:21:04,008 --> 00:21:05,320 OK. 439 00:21:05,320 --> 00:21:07,841 Więc tutaj w IDE-- Czy każdy może zobaczyć, że? 440 00:21:07,841 --> 00:21:08,340 Nie całkiem. 441 00:21:08,340 --> 00:21:11,400 Tutaj będę powiększać. 442 00:21:11,400 --> 00:21:15,850 >> Mam tylko ten krótki szablon tu z niczym faktycznie w nim. 443 00:21:15,850 --> 00:21:20,660 Jesteśmy po prostu się szybko napisać program HTML, w którym po prostu 444 00:21:20,660 --> 00:21:22,050 przywitaj się świata. 445 00:21:22,050 --> 00:21:24,970 Tak samo jak w C, teraz jesteśmy po prostu się to zrobić w HTML. 446 00:21:24,970 --> 00:21:28,250 Czy ktoś chce właściwie tylko spróbuj dając mi pierwszą rzeczą, którą 447 00:21:28,250 --> 00:21:31,870 będzie musiał umieścić w dokumencie HTML? 448 00:21:31,870 --> 00:21:32,850 Tak. 449 00:21:32,850 --> 00:21:35,965 >> PUBLICZNOŚCI: W nawiasie [niesłyszalne]. 450 00:21:35,965 --> 00:21:36,590 ANDI PENG: Tak. 451 00:21:36,590 --> 00:21:47,200 452 00:21:47,200 --> 00:21:50,930 Więc coś, co jest bardzo charakterystyczne dla HTML że zazwyczaj tradycyjnie 453 00:21:50,930 --> 00:21:56,080 nie spotkać w innych polecenia języki programowania liniowe 454 00:21:56,080 --> 00:21:59,890 jest to, że rzeczywiście określić typ pliku 455 00:21:59,890 --> 00:22:01,987 że jest to będzie na szczycie naszego kodu. 456 00:22:01,987 --> 00:22:04,570 Więc w tym instance-- myślę to jest prawo polecenia, prawda? 457 00:22:04,570 --> 00:22:10,050 458 00:22:10,050 --> 00:22:10,550 Tak. 459 00:22:10,550 --> 00:22:14,860 Na górze, po prostu chcesz to huk DOCTYPE html w nawiasie po prostu 460 00:22:14,860 --> 00:22:17,670 poinformować swojego komputera, hej, uważaj. 461 00:22:17,670 --> 00:22:20,050 Oraz dokument HTML nadchodzi. 462 00:22:20,050 --> 00:22:22,250 A potem, jak chcemy na rozpoczęcie nasz plik? 463 00:22:22,250 --> 00:22:25,540 Jeśli po prostu chcesz się przywitać, mają Strona internetowa, która mówi hello na świecie, 464 00:22:25,540 --> 00:22:26,915 jak pójdziemy na temat budowy tego? 465 00:22:26,915 --> 00:22:32,910 466 00:22:32,910 --> 00:22:35,300 >> Właściwie, wróćmy do Google. 467 00:22:35,300 --> 00:22:36,910 A my w rzeczywistości może to zrobić. 468 00:22:36,910 --> 00:22:43,170 469 00:22:43,170 --> 00:22:43,670 Tak. 470 00:22:43,670 --> 00:22:44,840 No to jedziemy. 471 00:22:44,840 --> 00:22:47,630 Więc HTML. 472 00:22:47,630 --> 00:22:52,390 Jak widać, moja przeglądarka jest rzeczywiście automatycznie stylizacji to dla mnie. 473 00:22:52,390 --> 00:22:56,010 >> Tak samo jak w C, kiedy stworzenie otwartej nawias klamrowy, 474 00:22:56,010 --> 00:22:59,020 automatycznie Twoja przeglądarka dodaje się w ścisłej nawias klamrowy. 475 00:22:59,020 --> 00:23:02,210 Na szczęście, nasz IDE kocha zrobić to za nas. 476 00:23:02,210 --> 00:23:05,490 Więc teraz możemy rodzaju typ początek znacznika 477 00:23:05,490 --> 00:23:09,139 i to będzie zawsze powiedzieć nam pamiętaj, aby wpisać koniec elementu. 478 00:23:09,139 --> 00:23:10,680 Myślę, że to musi być kapitalizowane. 479 00:23:10,680 --> 00:23:15,510 480 00:23:15,510 --> 00:23:21,760 A potem chcemy dodać, zawsze, głowa, w którym jest tytuł. 481 00:23:21,760 --> 00:23:25,270 482 00:23:25,270 --> 00:23:29,160 Chcemy tylko być może zadzwonić to cześć, a następnie ciało. 483 00:23:29,160 --> 00:23:34,010 484 00:23:34,010 --> 00:23:36,310 >> I proszę. 485 00:23:36,310 --> 00:23:39,650 To jest rzeczywiście nasz dokument HTML. 486 00:23:39,650 --> 00:23:45,030 Więc sposób, że każdy dokument HTML Zawsze jest coś w stylu in-- samym 487 00:23:45,030 --> 00:23:46,720 z int main pustkę. 488 00:23:46,720 --> 00:23:49,600 Zawsze chce mieć HTML otwartą i bliską tag 489 00:23:49,600 --> 00:23:52,100 na górze i na dole kodu. 490 00:23:52,100 --> 00:23:56,900 >> Chcesz mieć głowę wewnątrz od który zawiera tytuł, po prostu cokolwiek 491 00:23:56,900 --> 00:24:01,430 zamierza wyświetlić kartę swojej sieci Strona, po czym korpus, wewnątrz którego 492 00:24:01,430 --> 00:24:04,120 będzie faktycznie wyświetlić zawartość o co chcesz zrobić. 493 00:24:04,120 --> 00:24:08,220 Więc jeśli chcesz faktycznie uruchomić tego, mam zamiar powiększyć powrotem. 494 00:24:08,220 --> 00:24:12,740 Możesz zacząć apache50 rozpocząć kropkę. 495 00:24:12,740 --> 00:24:15,650 496 00:24:15,650 --> 00:24:16,150 Chłodny. 497 00:24:16,150 --> 00:24:18,980 A więc jak widać, teraz ten link nie pojawiło się. 498 00:24:18,980 --> 00:24:21,940 Mówi, witryna jest teraz dostępne w pewnym poniższy link. 499 00:24:21,940 --> 00:24:25,910 Tak więc wszystkie nasze IDE ma done-- nie IDE, sorry-- tak, 500 00:24:25,910 --> 00:24:33,280 nasz IDE zrobił jest stworzenie sieci Link na które wszystkich naszych stron internetowych 501 00:24:33,280 --> 00:24:35,407 mogą być dostępne na serwerze. 502 00:24:35,407 --> 00:24:36,490 Warto więc zapoznać się tutaj. 503 00:24:36,490 --> 00:24:40,240 >> Załóżmy, kliknij na to, przejdź do hello.html. 504 00:24:40,240 --> 00:24:42,895 I widać to bardzo prosta Strona internetowa dla 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 Jesteśmy rzeczywiście będzie po prostu mają everyone-- Tak, o co chodzi? 508 00:24:50,513 --> 00:24:52,353 >> PUBLICZNOŚCI: Mam podstawowe pytanie. 509 00:24:52,353 --> 00:24:52,978 ANDI PENG: Tak. 510 00:24:52,978 --> 00:24:58,064 PUBLICZNOŚCI: Jak zapisać plik jako HTML? 511 00:24:58,064 --> 00:24:58,730 ANDI PENG: Tak. 512 00:24:58,730 --> 00:25:02,960 513 00:25:02,960 --> 00:25:10,820 Więc gdybym miał stworzyć nowy plik, jeśli to zrobię nowy plik Untittle, jeśli to zrobię, 514 00:25:10,820 --> 00:25:14,390 section.html, boom, To wszystko, co musisz zrobić. 515 00:25:14,390 --> 00:25:15,363 >> PUBLICZNOŚCI: [niesłyszalne]? 516 00:25:15,363 --> 00:25:15,946 ANDI PENG: Nie 517 00:25:15,946 --> 00:25:16,660 PUBLICZNOŚCI: [niesłyszalne]. 518 00:25:16,660 --> 00:25:17,240 ANDI PENG: Nie 519 00:25:17,240 --> 00:25:18,156 PUBLICZNOŚCI: [niesłyszalne]. 520 00:25:18,156 --> 00:25:19,110 ANDI PENG: Tak. 521 00:25:19,110 --> 00:25:24,300 Dość dużo, rozszerzenie na plik, który jest wewnątrz IDE, 522 00:25:24,300 --> 00:25:27,840 które mówi komputerowi, że mówi przeglądarce, hej, uważaj. 523 00:25:27,840 --> 00:25:30,480 To będzie kod napisane w tym języku. 524 00:25:30,480 --> 00:25:34,240 Tak na przykład w programie Microsoft Słowo, co robią wszystkie dokumenty Worda 525 00:25:34,240 --> 00:25:37,070 kończy się, jakim rozszerzeniem? 526 00:25:37,070 --> 00:25:39,830 .doc lub .docx, prawda? 527 00:25:39,830 --> 00:25:42,299 >> Wszystko, co robi, jest Określa Twój system operacyjny, hej, 528 00:25:42,299 --> 00:25:43,840 masz dokument Word wymyślanie. 529 00:25:43,840 --> 00:25:44,940 Otworzyć go w programie Word. 530 00:25:44,940 --> 00:25:46,955 To samo z plikami PDF. 531 00:25:46,955 --> 00:25:49,650 Ona wie, oh, potrzebuję otworzyć ten plik 532 00:25:49,650 --> 00:25:52,020 z programu Adobe Reader lub Adobe Acrobat. 533 00:25:52,020 --> 00:25:56,130 >> I tak rozszerzenia obsługiwanie tak samo jak w komputerze. 534 00:25:56,130 --> 00:26:00,750 Jeśli określisz swoją stronę kodową być nazwany HTML, to wie, 535 00:26:00,750 --> 00:26:01,880 Och, masz kod HTML. 536 00:26:01,880 --> 00:26:04,890 Mam zamiar traktować go jako kod html. 537 00:26:04,890 --> 00:26:06,600 Więc to jest bardzo inteligentny w tym sensie. 538 00:26:06,600 --> 00:26:11,360 539 00:26:11,360 --> 00:26:18,730 >> Więc każdy, weźmy jak 10 minut i po prostu tworzyć własne strony internetowe. 540 00:26:18,730 --> 00:26:21,020 Dodajmy w piękne rzeczy. 541 00:26:21,020 --> 00:26:23,440 Zapraszam do powiedzenia, co chcesz. 542 00:26:23,440 --> 00:26:27,890 Chcę tylko, aby upewnić się, że serwery każdego z nas są działa poprawnie 543 00:26:27,890 --> 00:26:31,220 zanim uwolni cię do zbior. 544 00:26:31,220 --> 00:26:33,490 Bo jeśli serwerach nie działają dla pset, 545 00:26:33,490 --> 00:26:34,847 że będzie naprawdę, naprawdę zły. 546 00:26:34,847 --> 00:27:17,380 547 00:27:17,380 --> 00:27:21,093 >> Jestem po prostu będzie unosić się i zobaczyć, co wszyscy pracujemy. 548 00:27:21,093 --> 00:27:26,965 549 00:27:26,965 --> 00:27:27,590 Jak leci? 550 00:27:27,590 --> 00:27:29,048 >> PUBLICZNOŚCI: Ja po prostu odwrócił się na moim komputerze. 551 00:27:29,048 --> 00:27:29,923 >> ANDI PENG: To jest OK. 552 00:27:29,923 --> 00:27:41,200 553 00:27:41,200 --> 00:27:42,390 >> PUBLICZNOŚCI: [niesłyszalne]. 554 00:27:42,390 --> 00:27:44,284 >> ANDI PENG: Tylko IDE. 555 00:27:44,284 --> 00:27:44,784 Tak. 556 00:27:44,784 --> 00:27:54,040 557 00:27:54,040 --> 00:27:55,910 >> PUBLICZNOŚCI: [niesłyszalne]. 558 00:27:55,910 --> 00:27:57,590 >> ANDI PENG: Jest OK. 559 00:27:57,590 --> 00:27:59,491 >> PUBLICZNOŚCI: [niesłyszalne]. 560 00:27:59,491 --> 00:28:00,490 ANDI PENG: całkowicie w porządku. 561 00:28:00,490 --> 00:28:47,705 562 00:28:47,705 --> 00:28:51,530 Czy każdy dostępu ich serwer OK internetowej? 563 00:28:51,530 --> 00:28:52,970 Czy apache50 działa OK? 564 00:28:52,970 --> 00:28:54,700 Myślę, że w niektórych inne sekcje, możemy 565 00:28:54,700 --> 00:28:58,790 miał problemy z nie ludzi jest w stanie uzyskać dostęp do serwera. 566 00:28:58,790 --> 00:28:59,290 Tak. 567 00:28:59,290 --> 00:29:05,764 Więc po prostu uruchomić apache50 Przestrzeń rozpocząć okres przestrzeni. 568 00:29:05,764 --> 00:29:06,680 PUBLICZNOŚCI: [niesłyszalne]. 569 00:29:06,680 --> 00:29:07,610 ANDI PENG: Tak. 570 00:29:07,610 --> 00:29:08,294 Dobry? 571 00:29:08,294 --> 00:29:09,210 >> PUBLICZNOŚCI: [niesłyszalne]. 572 00:29:09,210 --> 00:29:12,530 573 00:29:12,530 --> 00:29:13,350 >> ANDI PENG: Och, OK. 574 00:29:13,350 --> 00:29:14,808 Więc powinien mieć miejsca. 575 00:29:14,808 --> 00:29:15,425 Więc apache50-- 576 00:29:15,425 --> 00:29:16,115 >> PUBLICZNOŚCI: zrobiłem. 577 00:29:16,115 --> 00:29:17,661 >> ANDI PENG: --start miejsca. 578 00:29:17,661 --> 00:29:18,660 PUBLICZNOŚCI: Och, miejsca kropka. 579 00:29:18,660 --> 00:29:20,110 ANDI PENG: Tak, przestrzeń kropka. 580 00:29:20,110 --> 00:29:23,230 Proszę bardzo. 581 00:29:23,230 --> 00:29:25,490 Tak więc, jeśli masz strona HTML tworzone, 582 00:29:25,490 --> 00:29:28,560 to możesz po prostu przejść bezpośrednio do linku, że określa. 583 00:29:28,560 --> 00:29:30,539 I powinieneś być w stanie do niego dostęp. 584 00:29:30,539 --> 00:29:35,130 585 00:29:35,130 --> 00:29:37,876 >> Każdy mógł dostęp do ich stron internetowych OK? 586 00:29:37,876 --> 00:29:39,339 >> PUBLICZNOŚCI: [niesłyszalne]. 587 00:29:39,339 --> 00:29:40,380 ANDI PENG: Och, to jest OK. 588 00:29:40,380 --> 00:29:43,551 589 00:29:43,551 --> 00:29:44,964 >> PUBLICZNOŚCI: [niesłyszalne]. 590 00:29:44,964 --> 00:29:45,630 ANDI PENG: Tak. 591 00:29:45,630 --> 00:29:48,171 Myślę, że rzeczywiście można otworzyć go w przeglądarce, przeglądarki 592 00:29:48,171 --> 00:29:49,955 i to nie tylko przeglądarka IDE. 593 00:29:49,955 --> 00:29:51,580 Tak, myślę, że jeśli skopiuj go i wklej. 594 00:29:51,580 --> 00:29:53,920 >> PUBLICZNOŚCI: A potem w jaki sposób go wyłączyć? 595 00:29:53,920 --> 00:29:54,590 [NIESŁYSZALNY] 596 00:29:54,590 --> 00:29:58,720 >> ANDI PENG: Tak, możesz zrobić apache50 zatrzymać bez okresu. 597 00:29:58,720 --> 00:29:59,220 Tak. 598 00:29:59,220 --> 00:30:01,180 >> PUBLICZNOŚCI: [niesłyszalne]. 599 00:30:01,180 --> 00:30:02,768 >> ANDI PENG: Bez okresu. 600 00:30:02,768 --> 00:30:04,051 Tak. 601 00:30:04,051 --> 00:30:04,550 No to jedziemy. 602 00:30:04,550 --> 00:30:05,050 Tak. 603 00:30:05,050 --> 00:30:08,480 604 00:30:08,480 --> 00:30:09,855 Jesteśmy tworzenia własnych stron internetowych. 605 00:30:09,855 --> 00:30:10,646 >> PUBLICZNOŚCI: O, fajnie. 606 00:30:10,646 --> 00:30:13,396 607 00:30:13,396 --> 00:30:14,062 ANDI PENG: Tak. 608 00:30:14,062 --> 00:30:20,484 609 00:30:20,484 --> 00:30:22,420 >> PUBLICZNOŚCI: Mam pytanie. 610 00:30:22,420 --> 00:30:25,294 Więc apache 50-- 611 00:30:25,294 --> 00:30:26,731 >> ANDI PENG: 50, tak. 612 00:30:26,731 --> 00:30:28,168 >> PUBLICZNOŚCI: [niesłyszalne]. 613 00:30:28,168 --> 00:30:29,130 >> ANDI PENG: Co? 614 00:30:29,130 --> 00:30:29,750 To dziwne. 615 00:30:29,750 --> 00:30:32,244 Zobacz, że był rodzaj emisji co się działo wcześniej. 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 Zobacz mnie po sekcji. 619 00:30:39,800 --> 00:30:42,320 Bo my mamy pewne problemy z serwerem. 620 00:30:42,320 --> 00:30:44,325 >> I chcesz, aby upewnić się, że serwer jest 621 00:30:44,325 --> 00:30:45,700 uruchomiony przed rozpoczęciem pset. 622 00:30:45,700 --> 00:30:47,800 Ponieważ będziesz go potrzebować. 623 00:30:47,800 --> 00:30:48,300 Tak. 624 00:30:48,300 --> 00:30:51,299 Czy jest ktoś jeszcze, że nie było w stanie uzyskać ich serwer zacząć? 625 00:30:51,299 --> 00:31:12,410 626 00:31:12,410 --> 00:31:17,840 >> Dla tych z Was, którzy chcą, aby dodać Dodatkowym styl do stron internetowych, 627 00:31:17,840 --> 00:31:20,450 faktycznie możemy zrobić co Dawid w wykładzie, jak również, 628 00:31:20,450 --> 00:31:24,070 co jest utworzyć dodatkowy styl blachy, która jest w CSS kropka, Kaskadowe 629 00:31:24,070 --> 00:31:30,080 Arkusz stylów i faktycznie po prostu dodaj go. 630 00:31:30,080 --> 00:31:33,550 Tak na przykład, właśnie stworzył prawie prawie dokładnie taki sam jeden 631 00:31:33,550 --> 00:31:37,180 Dawid w wykładzie. 632 00:31:37,180 --> 00:31:39,220 Można bardzo dużo po prostu zrobić ciało. 633 00:31:39,220 --> 00:31:45,980 >> Masz, co nazywane są znaczniki, w którym można stosować na dysk IDE niezależnie sekcję 634 00:31:45,980 --> 00:31:48,650 chcesz w swoim Rzeczywista na stronie HTML. 635 00:31:48,650 --> 00:31:54,890 Więc ciało stronie może zrobić tekstowy centrum align. 636 00:31:54,890 --> 00:31:58,110 A potem będę twórczy tag nazywa góry wewnątrz 637 00:31:58,110 --> 00:32:01,860 czego chcę te rzeczy stało, przypisać większy rozmiar piksela 638 00:32:01,860 --> 00:32:03,104 dla czcionki. 639 00:32:03,104 --> 00:32:04,520 Chcę waga czcionki być śmiały. 640 00:32:04,520 --> 00:32:06,478 I chcę kolor na być niebieski, po prostu arbitralne 641 00:32:06,478 --> 00:32:08,570 Wartości, że postanowiłem wybrać. 642 00:32:08,570 --> 00:32:10,870 Mogę stworzyć kolejny tag nazwie średniej. 643 00:32:10,870 --> 00:32:12,640 Rozmiar czcionki, sprawiają, że nieco mniejsze. 644 00:32:12,640 --> 00:32:17,730 A potem mogę utworzyć kolejny tag nazywa dole, gdzie chcę rozmiar czcionki 645 00:32:17,730 --> 00:32:20,900 być jeszcze mniejsze nadal. 646 00:32:20,900 --> 00:32:25,630 >> I tak dość dużo to tylko przykład arkuszy stylów kodu źródłowego lub źródłowych 647 00:32:25,630 --> 00:32:27,400 że bardzo łatwo tylko Google. 648 00:32:27,400 --> 00:32:31,560 Jeśli mówisz, oh, chcę moje czcionki być kursywą i ciemnozielone, 649 00:32:31,560 --> 00:32:33,980 można zapewne Google, i to będzie wam 650 00:32:33,980 --> 00:32:37,590 odpowiednie znaczniki lub identyfikatory stworzyć. 651 00:32:37,590 --> 00:32:41,670 I tak droga, że ​​faktycznie rodzaj mieć to w dokumencie HTML 652 00:32:41,670 --> 00:32:45,660 lub użyj to jest wszystko, co masz do zrobienia jest na czele 653 00:32:45,660 --> 00:32:48,560 dodać link do arkusza stylów. 654 00:32:48,560 --> 00:32:53,600 >> Więc można tylko link href równych bez względu na nazwę arkusza stylów 655 00:32:53,600 --> 00:32:54,590 jest. 656 00:32:54,590 --> 00:32:56,740 A następnie związek jest arkusz stylów. 657 00:32:56,740 --> 00:33:00,700 Więc w jakimkolwiek dokumencie HTML, tak długo, jak to ten arkusz CSS kropka, 658 00:33:00,700 --> 00:33:07,140 powinieneś być w stanie uzyskać dostęp do i mają właściwości tam. 659 00:33:07,140 --> 00:33:10,370 >> Tak na przykład, tutaj mam tylko utworzyć kolejną przykładową stronę internetową. 660 00:33:10,370 --> 00:33:15,680 Jest to zapraszamy do sekcji CS50 Wtorki od 2:00 do 3:30 ze mną. 661 00:33:15,680 --> 00:33:20,300 A potem dodałem piękny obraz, który mamy potencjalnie powinny być w stanie zobaczyć. 662 00:33:20,300 --> 00:33:24,620 >> Więc jeśli spojrzeć tutaj, jeśli pójdziesz do style.html, 663 00:33:24,620 --> 00:33:26,310 stworzyliśmy stronę internetową z kociąt. 664 00:33:26,310 --> 00:33:29,420 Ponieważ kotka są niesamowite. 665 00:33:29,420 --> 00:33:33,570 Więc dodając obraz jest po prostu img odnośnik SRC. 666 00:33:33,570 --> 00:33:36,260 667 00:33:36,260 --> 00:33:38,310 >> Dość dużo, jeśli jest każdy rodzaj funkcji 668 00:33:38,310 --> 00:33:40,268 chcesz dodać do listy website-- więc powiedzmy, 669 00:33:40,268 --> 00:33:43,290 chcesz dodać menu lub pasek wyszukiwania lub jak 670 00:33:43,290 --> 00:33:46,450 image-- tylko Google, jak to zrobić. 671 00:33:46,450 --> 00:33:48,277 I po prostu rzuć w tym formacie. 672 00:33:48,277 --> 00:33:50,110 A może po prostu dość ci dużo po prostu dodaj go. 673 00:33:50,110 --> 00:33:52,670 To naprawdę bardzo proste. 674 00:33:52,670 --> 00:33:55,014 >> Tworzymy własny Strony internetowe już teraz. 675 00:33:55,014 --> 00:33:55,680 Jeśli chcesz-- 676 00:33:55,680 --> 00:33:56,580 >> PUBLICZNOŚCI: [niesłyszalne] 677 00:33:56,580 --> 00:33:57,470 >> ANDI PENG: Słucham? 678 00:33:57,470 --> 00:33:59,310 >> PUBLICZNOŚCI: [niesłyszalne]. 679 00:33:59,310 --> 00:34:01,340 >> ANDI PENG: Och, div jest tylko podział 680 00:34:01,340 --> 00:34:04,370 powiedział mi, że, och, mam pewna część nazywa 681 00:34:04,370 --> 00:34:07,480 średnim, w którym jestem stosowania mój tag CSS, a następnie 682 00:34:07,480 --> 00:34:09,619 moja druga dywizja z dołu. 683 00:34:09,619 --> 00:34:10,785 To wszystko, to mówi. 684 00:34:10,785 --> 00:34:12,743 Ponieważ jest to miłe, aby utrzymać wszystko schludne, tak, 685 00:34:12,743 --> 00:34:16,304 więc program wie, jak dokładnie do uruchomienia. 686 00:34:16,304 --> 00:34:18,929 I że mogę skopiować wkleić do mojego rzeczywistego przeglądarki, jak również. 687 00:34:18,929 --> 00:34:21,110 Powinno być dobrze. 688 00:34:21,110 --> 00:34:21,610 Tak. 689 00:34:21,610 --> 00:34:24,330 690 00:34:24,330 --> 00:34:25,989 Hura. 691 00:34:25,989 --> 00:34:29,380 Więc jeśli każdy chce po prostu próby tworzenia stron internetowych, 692 00:34:29,380 --> 00:34:32,169 weźmiemy jeszcze dwie do trzech minut. 693 00:34:32,169 --> 00:34:34,460 Chcę tylko, aby upewnić się, serwery każdego z nas są uruchomione 694 00:34:34,460 --> 00:34:36,941 i każdy ma pomysł, jak to zrobić. 695 00:34:36,941 --> 00:34:38,774 Jeśli chcecie, aby wykupić swoje komputery. 696 00:34:38,774 --> 00:34:44,630 697 00:34:44,630 --> 00:34:45,635 Wciąż nie działa? 698 00:34:45,635 --> 00:34:47,420 >> PUBLICZNOŚCI: Jestem po prostu [niesłyszalne]. 699 00:34:47,420 --> 00:34:49,838 >> ANDI PENG: Może spróbuj aktualizować 50, jak również. 700 00:34:49,838 --> 00:34:51,392 Tak. 701 00:34:51,392 --> 00:34:52,308 PUBLICZNOŚCI: [niesłyszalne]. 702 00:34:52,308 --> 00:35:17,502 703 00:35:17,502 --> 00:35:18,990 >> ANDI PENG: Tak. 704 00:35:18,990 --> 00:35:23,750 Więc sposób, aby zacząć nowy Serwer WWW na IDE jest tylko 705 00:35:23,750 --> 00:35:27,889 zrobić apache50 startu przestrzeni kosmicznej kropkę. 706 00:35:27,889 --> 00:35:30,430 Chciałem się tylko upewnić, serwery każdego z nas działają OK. 707 00:35:30,430 --> 00:35:31,763 >> PUBLICZNOŚCI: Na terminalu? 708 00:35:31,763 --> 00:35:33,334 ANDI PENG: Tak. 709 00:35:33,334 --> 00:35:34,250 PUBLICZNOŚCI: [niesłyszalne]. 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 Właściwie myślę, że jesteś działa już coś. 713 00:35:42,010 --> 00:35:43,145 Tak, jesteś w rzeczywistości uruchomiony inny serwer. 714 00:35:43,145 --> 00:35:43,830 Tak, jesteś dobry. 715 00:35:43,830 --> 00:35:45,085 Tak długo, jak to działa, jesteś OK. 716 00:35:45,085 --> 00:35:45,626 >> PUBLICZNOŚCI: OK. 717 00:35:45,626 --> 00:35:47,615 ANDI PENG: Jest dwóch sposoby uruchamiania serwerów. 718 00:35:47,615 --> 00:35:49,990 Tak długo, jak jeden ze sposobów działa, to wszystko w porządku. 719 00:35:49,990 --> 00:36:18,470 720 00:36:18,470 --> 00:36:21,680 Weźmiemy jeszcze minutę tylko rodzaj skończyć 721 00:36:21,680 --> 00:36:25,280 wykończenia z co Strona internetowa chłopaki chcieli zrobić. 722 00:36:25,280 --> 00:36:26,830 >> Czy wszyscy pracujący w drodze? 723 00:36:26,830 --> 00:36:30,910 Serwery każdego z nas są działa oprócz dla Ciebie? 724 00:36:30,910 --> 00:36:32,210 Będziemy tego dowiedzieć. 725 00:36:32,210 --> 00:36:34,137 I HTML jest dość prosta. 726 00:36:34,137 --> 00:36:35,220 Więc myślę, że wszyscy jesteśmy dobre. 727 00:36:35,220 --> 00:36:38,260 728 00:36:38,260 --> 00:36:38,760 Tak. 729 00:36:38,760 --> 00:36:41,070 Wrócę. 730 00:36:41,070 --> 00:36:42,797 >> PUBLICZNOŚCI: [niesłyszalne]. 731 00:36:42,797 --> 00:36:43,380 ANDI PENG: OK. 732 00:36:43,380 --> 00:36:44,770 PUBLICZNOŚCI: Więc to tylko zaczął ładować. 733 00:36:44,770 --> 00:36:45,686 ANDI PENG: Nie martw się. 734 00:36:45,686 --> 00:36:49,590 735 00:36:49,590 --> 00:36:52,680 Więc HTML jest kod źródłowy, który będzie online po sekcji. 736 00:36:52,680 --> 00:36:54,810 Ponadto, David posiada całość Grono, jak również online. 737 00:36:54,810 --> 00:36:58,190 Wystarczy rodzaju spojrzenie na to, aby zobaczyć, jak strony HTML są pisane. 738 00:36:58,190 --> 00:36:59,920 Jest to dość łatwe. 739 00:36:59,920 --> 00:37:03,979 Wszystko, czego nie wiem, to dość dużo tylko Google i jesteś dobry. 740 00:37:03,979 --> 00:37:06,270 Chcę tylko, aby upewnić się, że serwery są uruchomione. 741 00:37:06,270 --> 00:37:12,962 742 00:37:12,962 --> 00:37:14,880 >> PUBLICZNOŚCI: Czy to zrobić często? 743 00:37:14,880 --> 00:37:16,421 >> ANDI PENG: To nigdy nie zdarzyło mi się. 744 00:37:16,421 --> 00:37:18,470 745 00:37:18,470 --> 00:37:20,782 Nie wiedziałem, że to może nawet hibernacji. 746 00:37:20,782 --> 00:37:22,516 >> PUBLICZNOŚCI: [niesłyszalne]. 747 00:37:22,516 --> 00:37:25,140 ANDI PENG: Myślę everyone-- Kopalnia nigdy nie hibernacji przed. 748 00:37:25,140 --> 00:37:26,860 I nie wiem dlaczego. 749 00:37:26,860 --> 00:37:27,566 To dziwne. 750 00:37:27,566 --> 00:37:29,310 >> PUBLICZNOŚCI: [niesłyszalne]. 751 00:37:29,310 --> 00:37:30,643 >> ANDI PENG: Czy twoje hibernacji? 752 00:37:30,643 --> 00:37:32,615 753 00:37:32,615 --> 00:37:33,669 >> PUBLICZNOŚCI: [niesłyszalne]. 754 00:37:33,669 --> 00:37:34,335 ANDI PENG: Tak. 755 00:37:34,335 --> 00:37:39,122 756 00:37:39,122 --> 00:37:39,872 PUBLICZNOŚCI: Jest OK. 757 00:37:39,872 --> 00:37:40,622 Więc kiedy jest otwarty. 758 00:37:40,622 --> 00:37:41,760 ANDI PENG: OK. 759 00:37:41,760 --> 00:37:43,940 Zajmiemy się z jakimś serwerem Problemy po sekcji. 760 00:37:43,940 --> 00:37:44,860 Powinno być w porządku. 761 00:37:44,860 --> 00:37:47,950 Mimo, chcesz upewnić się, My je rozwiązać przed wyjazdem. 762 00:37:47,950 --> 00:37:49,380 Bo jeśli serwera nie działa, to jesteś 763 00:37:49,380 --> 00:37:52,004 nie będzie w stanie zrobić zbior, jak każda część pset. 764 00:37:52,004 --> 00:37:54,200 Więc chcesz się upewnić, że to działa. 765 00:37:54,200 --> 00:37:54,831 Chłodny. 766 00:37:54,831 --> 00:37:55,330 W porządku. 767 00:37:55,330 --> 00:37:56,490 Powiedzieć, kocięta na pożegnanie. 768 00:37:56,490 --> 00:37:59,670 Spędziłem dużo czasu na szukanie że obraz kotek założyć. 769 00:37:59,670 --> 00:38:02,272 Tak, i tak. 770 00:38:02,272 --> 00:38:04,950 >> PUBLICZNOŚCI: [niesłyszalne]. 771 00:38:04,950 --> 00:38:05,770 >> ANDI PENG: Słucham? 772 00:38:05,770 --> 00:38:07,345 >> PUBLICZNOŚCI: [niesłyszalne]. 773 00:38:07,345 --> 00:38:08,970 ANDI PENG: Myślę, że to na stronie internetowej. 774 00:38:08,970 --> 00:38:11,064 Podobnie jak w specyfikacji? 775 00:38:11,064 --> 00:38:12,020 >> PUBLICZNOŚCI: [niesłyszalne]. 776 00:38:12,020 --> 00:38:16,080 Myślę, że to tylko spec on-line w tym tygodniu siedem. 777 00:38:16,080 --> 00:38:18,850 Myślę, że to się nazywa pset6, nawet choć jesteśmy na tydzień siedem, które 778 00:38:18,850 --> 00:38:19,641 jest computing nieco. 779 00:38:19,641 --> 00:38:23,130 PUBLICZNOŚCI: Ale to znaczy, jeśli Ciebie chcesz wyglądać at-- jeśli Ciebie 780 00:38:23,130 --> 00:38:28,666 chcą podciągnąć naszą wersję strona internetowa z naszej sever? 781 00:38:28,666 --> 00:38:31,820 Więc jak server.c jest pset, prawda? 782 00:38:31,820 --> 00:38:36,514 Jeśli chcesz spojrzeć na to, tak jak to się sprawdza? 783 00:38:36,514 --> 00:38:38,680 ANDI PENG: Och, tak, rzeczywiście zbior, wszystko robimy 784 00:38:38,680 --> 00:38:41,405 tutaj jest implementing-- tutaj, Pójdę nad tym chwilę. 785 00:38:41,405 --> 00:38:44,187 786 00:38:44,187 --> 00:38:47,020 Więc dla wszystkich, że właśnie dostał do sekcji, jesteście w szczęście. 787 00:38:47,020 --> 00:38:49,340 Jest bardzo mało materiału faktycznie pokrywają dziś. 788 00:38:49,340 --> 00:38:52,585 >> Ja tylko zamiar spędzić następny 20 minut będzie nad pset pomoc. 789 00:38:52,585 --> 00:38:55,210 Ponieważ istnieje kilka przydatnych funkcje, które pomogą ci życie. 790 00:38:55,210 --> 00:38:57,501 I miejmy nadzieję, że będziemy się stąd w jak 20 minut. 791 00:38:57,501 --> 00:38:58,360 OK. 792 00:38:58,360 --> 00:39:00,252 >> Więc pset7 jest nie tak. 793 00:39:00,252 --> 00:39:02,460 Mimo, że jesteśmy na tydzień siedem, to faktycznie pset6. 794 00:39:02,460 --> 00:39:04,220 Będę zmienić. 795 00:39:04,220 --> 00:39:07,550 Wszystko robimy w pset6 jest stworzenie serwera WWW. 796 00:39:07,550 --> 00:39:09,010 To brzmi bardzo groźnie. 797 00:39:09,010 --> 00:39:11,010 >> A zwłaszcza dla tych, z was, którzy mają już 798 00:39:11,010 --> 00:39:14,530 spojrzał na kod dystrybucji, tam jest dużo kodu, dużo kodu. 799 00:39:14,530 --> 00:39:15,570 Ale jest zupełnie OK. 800 00:39:15,570 --> 00:39:17,750 Ponieważ Nitty Gritty część rzeczywiście tworzenia 801 00:39:17,750 --> 00:39:20,140 Serwer dokonuje się przez nas. 802 00:39:20,140 --> 00:39:22,090 Wszystko tak naprawdę zapytał do zrobienia w tej pset 803 00:39:22,090 --> 00:39:25,350 jest po prostu zrobić kilka manipulacji ciąg w pliku I / O. To rzeczywiście 804 00:39:25,350 --> 00:39:27,570 jak dość proste. 805 00:39:27,570 --> 00:39:30,830 >> Więc kiedy najpierw pobrać that-- którzy tu rzeczywiście już pobrane 806 00:39:30,830 --> 00:39:32,540 pset i pod lupę? 807 00:39:32,540 --> 00:39:33,040 W porządku. 808 00:39:33,040 --> 00:39:33,540 Tak. 809 00:39:33,540 --> 00:39:36,042 Nie ma jak 500 linii kodu że masz zamiar być jak, 810 00:39:36,042 --> 00:39:36,750 co się dzieje? 811 00:39:36,750 --> 00:39:38,177 I to jest całkowicie w porządku. 812 00:39:38,177 --> 00:39:39,760 Upewnij się, że oglądanie walk-through. 813 00:39:39,760 --> 00:39:41,610 Ponieważ Dawid and-- nie wiem. 814 00:39:41,610 --> 00:39:43,870 Nie sądzę, że to Zamyla, ten jeden. 815 00:39:43,870 --> 00:39:47,040 Ale myślę, że jakiś inny walk-through są dość 816 00:39:47,040 --> 00:39:49,510 pomocny w zakresie po prostu z powiadomieniem 817 00:39:49,510 --> 00:39:51,780 co się dzieje wewnątrz kodu. 818 00:39:51,780 --> 00:39:53,330 >> I to jest zupełnie OK. 819 00:39:53,330 --> 00:39:57,860 Ponieważ cztery funkcje, że jesteś zwrócił się do wdrożenia mają właściwie 820 00:39:57,860 --> 00:39:59,720 zera do czynienia z rzeczywistym serwerem. 821 00:39:59,720 --> 00:40:02,590 Wszystko, co musisz zrobić, to po prostu analizowania różnych ciągów, 822 00:40:02,590 --> 00:40:05,780 przeszukując strun, aby upewnić się, że wszystko robią 823 00:40:05,780 --> 00:40:07,750 co oni mają robić. 824 00:40:07,750 --> 00:40:11,200 >> Tak więc w tym zakresie, są kilka bardzo przydatnych funkcji, 825 00:40:11,200 --> 00:40:13,630 szczególnie dla łańcucha Manipulacja, że ​​wszyscy powinniśmy 826 00:40:13,630 --> 00:40:15,879 przejść nad tym myślałem, że być bardzo przydatne dla was 827 00:40:15,879 --> 00:40:19,130 Przed przystąpieniem do nauki w pset. 828 00:40:19,130 --> 00:40:23,350 I wszystkie one są zawarte w Twoim string.h bibliotece. 829 00:40:23,350 --> 00:40:25,980 Nie ma chyba bardziej użyteczne Funkcje Nie zawarte tutaj, 830 00:40:25,980 --> 00:40:30,740 bo nigdy ani z nich korzystać lub Być może po prostu nie wiedzą, że istnieje. 831 00:40:30,740 --> 00:40:32,440 >> Zapraszam do oka poprzez student.h. 832 00:40:32,440 --> 00:40:36,460 Ponieważ nie będzie dużo funkcji, które są bardzo przydatne. 833 00:40:36,460 --> 00:40:43,050 Więc sześciu że używam najbardziej w moim zbior, kiedy to robiłem w ubiegłym tygodniu 834 00:40:43,050 --> 00:40:49,620 były strtok, strchr, strrcher, strstr, strcasecmp i strcpy. 835 00:40:49,620 --> 00:40:53,060 I tak dwa ostatnie mogą wydawać dość znane większości z was. 836 00:40:53,060 --> 00:40:56,910 Sprawa Str porównać, to tak naprawdę jedynie porównać sznurki, by sprawdzić ich równości, 837 00:40:56,910 --> 00:40:58,110 w tym przypadku. 838 00:40:58,110 --> 00:41:01,430 I StrCpy tylko kopie jeden ciąg znaków do bufora. 839 00:41:01,430 --> 00:41:04,430 >> I tak te dwa powinny wydawać się bardzo znane was w tym momencie. 840 00:41:04,430 --> 00:41:07,100 Ponieważ używaliśmy ich dużo, zwłaszcza w ciągu ostatnich psets. 841 00:41:07,100 --> 00:41:10,734 Ale pierwsze cztery być może nie widziałem do tej pory. 842 00:41:10,734 --> 00:41:12,400 Ale mam zamiar po prostu chodzić po nich. 843 00:41:12,400 --> 00:41:15,620 Ponieważ zamierzamy uczynić swoje życie naprawdę, naprawdę łatwe nie for-- łatwe, 844 00:41:15,620 --> 00:41:19,830 ale o wiele łatwiej nadchodzącym pset. 845 00:41:19,830 --> 00:41:20,420 >> OK. 846 00:41:20,420 --> 00:41:27,720 Więc char * strtok, jest to funkcja Definicja ta funkcja zawierał 847 00:41:27,720 --> 00:41:31,050 w ciąg, h bibliotece. 848 00:41:31,050 --> 00:41:34,340 Jeśli podane są dane wejściowe char * Łańcuch, który jest po prostu ciągiem znaków, 849 00:41:34,340 --> 00:41:38,220 lub stałą char * deliminator, ogranicznik w skrócie, 850 00:41:38,220 --> 00:41:42,410 wszystko to robi łamie większy Łańcuch do serii, co nazywamy 851 00:41:42,410 --> 00:41:45,730 tokeny oddzielone pewnej wartości. 852 00:41:45,730 --> 00:42:03,340 Więc w pewnym sensie, jeśli miałbym dać Ci section.7.php, jest to ciąg znaków. 853 00:42:03,340 --> 00:42:09,520 >> Więc to byłoby gdybym miał przekazać w tym, jak mój str, mój char * str, 854 00:42:09,520 --> 00:42:18,870 jeśli deliminator była kropka, to wszystko Wyszukiwarka byłoby zrobić to za pośrednictwem łańcucha. 855 00:42:18,870 --> 00:42:22,790 I po raz pierwszy widzi kropki, to po prostu powrócić do wskaźnika 856 00:42:22,790 --> 00:42:25,830 ostatniego tokena znaleziono w ciągu przed tym. 857 00:42:25,830 --> 00:42:27,230 Więc byłoby to tutaj. 858 00:42:27,230 --> 00:42:30,580 >> I to właśnie daje mi 7.php. 859 00:42:30,580 --> 00:42:34,070 I jeśli miałbym nazwać funkcjonować jeszcze raz, 860 00:42:34,070 --> 00:42:37,580 to daje mi tylko .php. 861 00:42:37,580 --> 00:42:41,540 A więc wszystko, ta funkcja robi jest przełamanie większy ciąg 862 00:42:41,540 --> 00:42:44,620 na mniejsze łańcuchy, zależnie na tym, co szukasz. 863 00:42:44,620 --> 00:42:46,670 >> I tak, na przykład, w czynność wygląd się 864 00:42:46,670 --> 00:42:49,895 jeśli chcesz spojrzeć na to, co niektóre znaki dojść 865 00:42:49,895 --> 00:42:54,280 czy kropki wydarzy lub rozszerzenia się zdarzyć, funkcja ta będzie dość przydatne. 866 00:42:54,280 --> 00:42:57,260 867 00:42:57,260 --> 00:42:59,010 Tak. 868 00:42:59,010 --> 00:42:59,510 Bez obaw. 869 00:42:59,510 --> 00:43:01,339 To wszystko być: Tak, o co chodzi? 870 00:43:01,339 --> 00:43:07,087 >> PUBLICZNOŚCI: Więc w pierwszej linii, jeśli używaliśmy ten przykład, 871 00:43:07,087 --> 00:43:09,504 co by wstawić w to? 872 00:43:09,504 --> 00:43:10,170 ANDI PENG: Tak. 873 00:43:10,170 --> 00:43:13,000 874 00:43:13,000 --> 00:43:25,640 Można by tak nazwać strtok ogranicznik ciąg przecinek. 875 00:43:25,640 --> 00:43:30,260 A łańcuch jest równa section.7.php. 876 00:43:30,260 --> 00:43:35,244 I wtedy jesteś ogranicznik może być równa tylko punktowe. 877 00:43:35,244 --> 00:43:36,654 >> PUBLICZNOŚCI: OK. 878 00:43:36,654 --> 00:43:39,010 >> ANDI PENG: Tak. 879 00:43:39,010 --> 00:43:41,266 Tak po prostu. 880 00:43:41,266 --> 00:43:43,890 Wszystkie te funkcje są dość podobnie, gdy idziemy przez nich. 881 00:43:43,890 --> 00:43:45,514 Oni po prostu zrobić nieco inne rzeczy. 882 00:43:45,514 --> 00:43:49,530 Ale oni wszyscy będą Twoje życie o wiele łatwiejsze. 883 00:43:49,530 --> 00:43:53,940 Druga funkcja, ten jest jak super, super, super ważne, 884 00:43:53,940 --> 00:43:58,254 jest the-- pomieścić. 885 00:43:58,254 --> 00:44:07,560 886 00:44:07,560 --> 00:44:08,730 >> Ups. 887 00:44:08,730 --> 00:44:13,810 Strchr wyszukuje pierwszy occurrence-- rzeczywiście, tak. 888 00:44:13,810 --> 00:44:16,385 Strchr to funkcja I na pewno po prostu poszedł. 889 00:44:16,385 --> 00:44:18,260 Więc ignorować tego, co powiedziałem dla pierwszej funkcji. 890 00:44:18,260 --> 00:44:20,980 To naprawdę nazywa strchr. 891 00:44:20,980 --> 00:44:24,840 >> Więc co tu się stało jest, jeśli dostaliście łańcuch znaków w char c, 892 00:44:24,840 --> 00:44:28,660 to po prostu dać Ci, co to było. 893 00:44:28,660 --> 00:44:29,230 Tak. 894 00:44:29,230 --> 00:44:33,700 Więc pomyśl o tym, jak ul, który jest ciągiem znaków, i chr jako char. 895 00:44:33,700 --> 00:44:38,621 Więc wszystko co próbujemy zrobić, to znaleźć dla których znak jest w ciągu znaków. 896 00:44:38,621 --> 00:44:41,120 I tak to wyszukuje pierwszy Występowanie charakteru 897 00:44:41,120 --> 00:44:43,601 c w łańcuchu str. 898 00:44:43,601 --> 00:44:46,463 >> PUBLICZNOŚCI: [niesłyszalne]. 899 00:44:46,463 --> 00:44:48,380 >> ANDI PENG: Tak. 900 00:44:48,380 --> 00:44:51,230 A jeśli nie znajdziesz to, to się zwróci NULL. 901 00:44:51,230 --> 00:44:54,313 Więc coś, co będzie bardzo użyteczne dla was w robienie pset 902 00:44:54,313 --> 00:44:59,030 jeśli, powiedzmy, czego szukasz dla Rozszerzenie jak .docx za słowo 903 00:44:59,030 --> 00:45:04,740 Dokument lub .pdf do dokumentu PDF, można rodzaj używać go szukać 904 00:45:04,740 --> 00:45:08,720 na to, co jest potem każdym razem, gdy pojawi się kropka, prawda? 905 00:45:08,720 --> 00:45:11,880 I tak bardzo dużo, jeśli Ciebie prowadzony, że dzięki funkcji 906 00:45:11,880 --> 00:45:13,610 jeśli zwraca NULL, to wiesz, że to 907 00:45:13,610 --> 00:45:17,292 nie znaleźliśmy go kropka, która oznacza, zdecydowanie nie jest ważne rozszerzenie pliku. 908 00:45:17,292 --> 00:45:19,000 Albo jeśli zwróci coś, to wiesz, 909 00:45:19,000 --> 00:45:21,940 to będzie powrót Cokolwiek w rzeczywistości po rozszerzeniu. 910 00:45:21,940 --> 00:45:24,190 Tak więc ci, którzy mieli zaczął rozglądać się za pośrednictwem odnośnika 911 00:45:24,190 --> 00:45:28,640 i analizować, ta funkcja będzie bardzo przydatna. 912 00:45:28,640 --> 00:45:32,010 Więc jesteśmy naprawdę dzieje wykazać za pomocą tego. 913 00:45:32,010 --> 00:45:36,670 >> Dlaczego nie wy Spróbuj napisać Funkcja bool zdanie char * s, które 914 00:45:36,670 --> 00:45:39,610 po prostu zwraca true jeśli s jest zdanie i false w przeciwnym wypadku. 915 00:45:39,610 --> 00:45:44,110 916 00:45:44,110 --> 00:45:46,830 Więc podpowiedź, będziesz do prawdopodobnie używać strchr. 917 00:45:46,830 --> 00:45:50,420 Albo po prostu wyszukać w Łańcuch do niektórych znaków. 918 00:45:50,420 --> 00:45:54,950 I tak w jednym zdaniu, co odróżnia zdanie 919 00:45:54,950 --> 00:45:57,510 z nieprzestrzegania wyroku, co specyfika? 920 00:45:57,510 --> 00:45:58,260 PUBLICZNOŚCI: Przestrzeń. 921 00:45:58,260 --> 00:45:59,343 ANDI PENG: Przestrzeń, prawda? 922 00:45:59,343 --> 00:46:03,354 A więc to, co mamy prawdopodobnie będzie chce zrobić w tej funkcji tutaj? 923 00:46:03,354 --> 00:46:04,290 >> PUBLICZNOŚCI: [niesłyszalne]. 924 00:46:04,290 --> 00:46:07,623 >> ANDI PENG: Będziemy chcą strchr Ciąg o wygląd przestrzeni. 925 00:46:07,623 --> 00:46:11,330 Bo jeśli coś, a potem wraca Wiemy, że to musi być wyrokiem. 926 00:46:11,330 --> 00:46:14,510 To oznacza, że ​​musimy mają miejsce w tym ciągu. 927 00:46:14,510 --> 00:46:17,660 >> Jeśli nie ma miejsca, to wiemy że, hej, domyślam się, że nie jest to ciąg znaków. 928 00:46:17,660 --> 00:46:20,060 To chyba tylko bardzo długie słowo. 929 00:46:20,060 --> 00:46:23,242 Więc dam ci faceci kilka minut, aby napisać tę funkcję. 930 00:46:23,242 --> 00:46:44,398 931 00:46:44,398 --> 00:46:45,874 Tak. 932 00:46:45,874 --> 00:46:47,970 >> PUBLICZNOŚCI: Dostałeś to ciąg od użytkownika? 933 00:46:47,970 --> 00:46:48,440 >> ANDI PENG: Tak. 934 00:46:48,440 --> 00:46:49,565 Więc jest to tylko funkcja. 935 00:46:49,565 --> 00:46:54,586 Więc wyobraź sobie, wewnątrz funkcji main już have-- chodźmy tutaj. 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 Więc Napisałem ten program, gdzie Mam swoją główną funkcją gdzie 939 00:47:05,270 --> 00:47:07,432 Właśnie stworzyliśmy dwa sznurki. 940 00:47:07,432 --> 00:47:09,890 Pierwszy z nich to Cześć, mam na imię jest Andi-- wyraźnie zdanie. 941 00:47:09,890 --> 00:47:13,240 Mój drugi jest po prostu Andi, wyraźnie nie skazać. 942 00:47:13,240 --> 00:47:18,390 >> I tak biegnę, zarówno tych, sznurki dzięki tej funkcji. 943 00:47:18,390 --> 00:47:20,540 Chcę Was napisać zdanie zimno. 944 00:47:20,540 --> 00:47:23,380 A ja przechowywania tych wartości, a potem po prostu ich drukowania. 945 00:47:23,380 --> 00:47:26,549 Więc myślę, że użytkownik jest przejdzie w ciągu. 946 00:47:26,549 --> 00:47:29,590 A potem będziesz zasadniczo dowiedzieć się, czy jest to zdanie, czy nie 947 00:47:29,590 --> 00:47:31,131 i powrót odpowiednio prawda lub fałsz. 948 00:47:31,131 --> 00:48:41,850 949 00:48:41,850 --> 00:48:45,200 >> Jeśli chcecie, aby dać Kciuk w górę lub główek, skinienie głowy, 950 00:48:45,200 --> 00:48:49,080 jest ktoś gotowy, aby rozpocząć tego, to byłoby dobre. 951 00:48:49,080 --> 00:50:13,570 952 00:50:13,570 --> 00:50:15,200 Może jak 30 sekund? 953 00:50:15,200 --> 00:50:49,570 954 00:50:49,570 --> 00:50:50,070 W porządku. 955 00:50:50,070 --> 00:50:52,870 Zobaczymy, czy można spróbować pisanie tej funkcji. 956 00:50:52,870 --> 00:50:57,480 >> Więc pseudo coding-- Idę do rodzaj przejść przez to teraz. 957 00:50:57,480 --> 00:51:00,570 Dość dużo, wiemy, że Funkcja, że ​​musimy użyć. 958 00:51:00,570 --> 00:51:04,390 Mamy zamiar wywołać tą funkcję na nasz łańcuch i poszukiwanie miejsca. 959 00:51:04,390 --> 00:51:08,682 Jeśli zwróci coś, to musimy wiem, że, oczywiście, jest to zdanie. 960 00:51:08,682 --> 00:51:09,640 Bo nie ma miejsca. 961 00:51:09,640 --> 00:51:10,930 Następnie jedziemy do powrotu prawda. 962 00:51:10,930 --> 00:51:12,310 Innego, będziemy return false. 963 00:51:12,310 --> 00:51:14,393 Czy ktoś chce dać mnie pierwsza linia kodu 964 00:51:14,393 --> 00:51:16,890 że jesteśmy naprawdę dzieje w użyciu to napisać? 965 00:51:16,890 --> 00:51:19,680 To rzeczywiście najtrudniejsze linii kodu, jak również. 966 00:51:19,680 --> 00:51:21,026 Tak. 967 00:51:21,026 --> 00:51:28,942 >> PUBLICZNOŚCI: Jeśli strtok S-- 968 00:51:28,942 --> 00:51:29,900 ANDI PENG: Tylko strchr. 969 00:51:29,900 --> 00:51:35,354 PUBLICZNOŚCI: [wstawienie GŁOSY] Przestrzeń nie jest równa null. 970 00:51:35,354 --> 00:51:38,270 971 00:51:38,270 --> 00:51:40,710 >> ANDI PENG: Spoko. 972 00:51:40,710 --> 00:51:41,470 Dokładnie tak. 973 00:51:41,470 --> 00:51:43,200 Wszyscy rozumieją, że pierwszy wiersz? 974 00:51:43,200 --> 00:51:46,110 Mamy zamiar zadzwonić strstr, która jest funkcją, która wyszukuje 975 00:51:46,110 --> 00:51:51,830 łańcuch s do char przestrzeni. 976 00:51:51,830 --> 00:51:56,010 A jeśli go znajdzie, to będzie zwraca wskaźnik do miejsca, gdzie to jest. 977 00:51:56,010 --> 00:51:58,500 >> Jeśli nie go znaleźć, to się zwróci NULL. 978 00:51:58,500 --> 00:52:02,530 Więc jeśli zwróci coś innego niż NULL, to wiemy, że znalazł miejsce. 979 00:52:02,530 --> 00:52:03,553 Czy to ma sens? 980 00:52:03,553 --> 00:52:04,090 Chłodny. 981 00:52:04,090 --> 00:52:04,590 W porządku. 982 00:52:04,590 --> 00:52:08,246 Tak więc, jeśli wiemy, że znalazł przestrzeń, co chcemy zrobić? 983 00:52:08,246 --> 00:52:09,162 PUBLICZNOŚCI: Powrót prawda. 984 00:52:09,162 --> 00:52:09,787 ANDI PENG: Tak. 985 00:52:09,787 --> 00:52:11,940 Return true. 986 00:52:11,940 --> 00:52:15,034 A potem, ktoś chce zakończyć się funkcję dla mnie? 987 00:52:15,034 --> 00:52:16,300 Tak. 988 00:52:16,300 --> 00:52:19,720 Indziej, tak po prostu. 989 00:52:19,720 --> 00:52:20,780 I spróbować kompilacji tego. 990 00:52:20,780 --> 00:52:26,071 991 00:52:26,071 --> 00:52:28,000 >> Tak. 992 00:52:28,000 --> 00:52:33,099 Tak jak chłopaki widać z Wyjścia, pamiętaj logicznych w C 993 00:52:33,099 --> 00:52:34,390 są zawsze wyrażane w formacie binarnym. 994 00:52:34,390 --> 00:52:35,100 1, jest prawdą. 995 00:52:35,100 --> 00:52:36,350 0 jest fałszywe. 996 00:52:36,350 --> 00:52:39,720 >> Gdybyśmy mieli do uruchomienia tego Funkcja na ciąg jeden, który 997 00:52:39,720 --> 00:52:42,900 Jest Cześć, nazywam się Andi-- Jasne jest, że sentence-- wynik 998 00:52:42,900 --> 00:52:45,700 wydrukowane na 1, co jest prawdą. 999 00:52:45,700 --> 00:52:48,420 Druga, która jest po prostu słowo, wynik drukowane 1000 00:52:48,420 --> 00:52:50,630 na 0, co jest fałszywe. 1001 00:52:50,630 --> 00:52:54,820 Każdy rodzaj jasne, w jaki sposób funkcja ta została napisana? 1002 00:52:54,820 --> 00:52:55,800 Tak. 1003 00:52:55,800 --> 00:52:59,770 >> PUBLICZNOŚCI: Możemy również zrobić, zamiast nie równa nie, równa jest równa 0, 1004 00:52:59,770 --> 00:53:03,677 tak, to jest równe? 1005 00:53:03,677 --> 00:53:04,260 ANDI PENG: Nie 1006 00:53:04,260 --> 00:53:07,480 Ponieważ strchr jest funkcją. 1007 00:53:07,480 --> 00:53:09,940 Mam zamiar wrócić do tego. 1008 00:53:09,940 --> 00:53:14,624 Więc co to za typ zwracany naszego funkcji strchr? 1009 00:53:14,624 --> 00:53:15,332 PUBLICZNOŚCI: Och, OK. 1010 00:53:15,332 --> 00:53:15,800 Lub NULL. 1011 00:53:15,800 --> 00:53:16,466 >> ANDI PENG: Tak. 1012 00:53:16,466 --> 00:53:20,890 Jest to char *, który mówi mi, że cokolwiek funkcja ta będzie powrócić, 1013 00:53:20,890 --> 00:53:22,090 to będzie wskaźnik. 1014 00:53:22,090 --> 00:53:24,860 Albo wskaźnik będzie wskazując, gdzie znalazł go, 1015 00:53:24,860 --> 00:53:27,550 czy to będzie powrót wskaźnik NULL. 1016 00:53:27,550 --> 00:53:30,930 W każdej sytuacji, to będzie zwraca wskaźnik do czegoś. 1017 00:53:30,930 --> 00:53:34,354 >> I tak, jeśli były do ​​zrównania to równa, równa, 0, 1018 00:53:34,354 --> 00:53:36,020 masz zamiar dostać się błąd kompilacji. 1019 00:53:36,020 --> 00:53:37,645 Bo to będzie zwracają wskaźnik. 1020 00:53:37,645 --> 00:53:40,240 I masz zamiar spróbować porównać wskaźnik do liczby całkowitej. 1021 00:53:40,240 --> 00:53:42,515 A komputer nie spodoba. 1022 00:53:42,515 --> 00:53:45,630 Tak, dokładnie. 1023 00:53:45,630 --> 00:53:46,540 Chłodny. 1024 00:53:46,540 --> 00:53:47,525 Każdy dobry? 1025 00:53:47,525 --> 00:53:55,770 1026 00:53:55,770 --> 00:53:59,770 >> A po drugie, mamy zamiar iść na funkcję o nazwie strstr. 1027 00:53:59,770 --> 00:54:02,020 Nie martw się, jeśli te Funkcje mylą was. 1028 00:54:02,020 --> 00:54:03,750 Oni myli mnie. 1029 00:54:03,750 --> 00:54:07,250 Jako takie, moglibyście widziałem, wszystkie brzmią bardzo podobnie. 1030 00:54:07,250 --> 00:54:10,400 Tylko kiedy jesteś zagubiony, podciągnąć string.h bibliotekę. 1031 00:54:10,400 --> 00:54:13,290 A wy można sortować przez które, które. 1032 00:54:13,290 --> 00:54:18,910 >> Więc strstr, wszystko, co robi, jest wyszukiwanie łańcuch na cały inny ciąg. 1033 00:54:18,910 --> 00:54:21,980 Więc gdzie strchr zaledwie wyszukiwania dla pojedynczego znaku, 1034 00:54:21,980 --> 00:54:24,090 strstr wyszukiwania dla całego łańcucha. 1035 00:54:24,090 --> 00:54:30,440 Więc chciałem zajrzeć, nie wiem wiedzieć, Cześć, nazywam się Andi. 1036 00:54:30,440 --> 00:54:32,490 I nazwa mojego najlepszego przyjaciela jest Andi. 1037 00:54:32,490 --> 00:54:37,180 >> Gdybym chciał szukać w tym Zdanie dla całego słowa Andi, 1038 00:54:37,180 --> 00:54:39,930 moja igły byłby co szukasz. 1039 00:54:39,930 --> 00:54:43,440 A twój stogu siana jest cokolwiek szukasz tego w. 1040 00:54:43,440 --> 00:54:47,050 Więc jeśli szukasz specyficzne słowo w zdaniu, 1041 00:54:47,050 --> 00:54:48,800 że słowo to będzie twój igły. 1042 00:54:48,800 --> 00:54:51,397 A potem sam zdanie będzie twoja stogu siana. 1043 00:54:51,397 --> 00:54:53,230 I tak to właśnie przeszukuje pierwsze wystąpienie 1044 00:54:53,230 --> 00:54:55,063 igły łańcucha w stogu siana smyczkowy. 1045 00:54:55,063 --> 00:54:57,140 Zwraca wskaźnik do pierwszego zdarzenia. 1046 00:54:57,140 --> 00:55:00,510 Z wyjątkiem, pamiętaj w tym przypadku, to jest to Pierwsze wystąpienie całego łańcucha 1047 00:55:00,510 --> 00:55:02,510 że jesteś poszukiwania na, nie tylko postać. 1048 00:55:02,510 --> 00:55:04,676 >> A więc jest niemal samo jak funkcja 1049 00:55:04,676 --> 00:55:09,100 po prostu tak, tylko z nieco bardziej specyfika. 1050 00:55:09,100 --> 00:55:12,730 Ponieważ szukasz więcej niż jeden znak. 1051 00:55:12,730 --> 00:55:16,310 I użycie jest dokładnie to samo jak ten, który właśnie zrobił. 1052 00:55:16,310 --> 00:55:18,070 Każdy OK z tym? 1053 00:55:18,070 --> 00:55:20,250 OK. 1054 00:55:20,250 --> 00:55:23,560 >> Ostatni mamy zamiar iść przez to strrchr, co nie jest 1055 00:55:23,560 --> 00:55:26,320 mylić z strstr lub strchr. 1056 00:55:26,320 --> 00:55:27,890 strrchr ma dodatkowy rw tam. 1057 00:55:27,890 --> 00:55:29,140 Bądź ostrożny, gdy piszesz. 1058 00:55:29,140 --> 00:55:33,851 Może znaleźć się w tym dodatkowy r lub nie w tym r, 1059 00:55:33,851 --> 00:55:35,850 a następnie czynność nie został zadziała. 1060 00:55:35,850 --> 00:55:37,183 I masz zamiar się mylić. 1061 00:55:37,183 --> 00:55:40,150 Należy uważać, że jesteś pisowni wszystkie te funkcje w prawo. 1062 00:55:40,150 --> 00:55:43,770 >> Więc strrchr jest dokładna samo, co strchr 1063 00:55:43,770 --> 00:55:47,480 oprócz tego, że szuka nie pierwszy wystąpienie specyficznego charakteru, 1064 00:55:47,480 --> 00:55:49,350 ale ostatnie wystąpienie. 1065 00:55:49,350 --> 00:55:52,800 I tak, w tym sensie, to prawie dokładnie to samo. 1066 00:55:52,800 --> 00:55:54,620 Ale zamiast się przekazania w ciągu znaków, 1067 00:55:54,620 --> 00:55:57,230 masz zamiar być w ruchu do tyłu, w ciągu. 1068 00:55:57,230 --> 00:56:00,510 Dokładnie to samo, jesteś po prostu wyszukiwanie w innej kolejności. 1069 00:56:00,510 --> 00:56:04,690 >> I tak może to być super, bardzo przydatne dla odnośnika 1070 00:56:04,690 --> 00:56:07,490 Funkcja pierwszy Funkcja na zbior. 1071 00:56:07,490 --> 00:56:12,710 Udajmy, że musimy napisać Funkcja pustych rozszerzenia, w którym 1072 00:56:12,710 --> 00:56:17,850 przekazać stała char * nazwa pliku, po prostu ciągiem znaków, nazwa pliku, 1073 00:56:17,850 --> 00:56:21,370 że bierze w tym imię i wydruków na przedłużenie tego pliku. 1074 00:56:21,370 --> 00:56:26,520 Tak na przykład, jeśli miało przechodzi w ciąg pset7.zip, 1075 00:56:26,520 --> 00:56:30,004 to będzie drukować tylko wydłużenie, które zip. 1076 00:56:30,004 --> 00:56:31,920 I to będzie pracować dla jakiekolwiek rozszerzenie, 1077 00:56:31,920 --> 00:56:38,290 .docx dla Word lub pdf w formacie PDF pliku lub .html do pliku HTML. 1078 00:56:38,290 --> 00:56:40,425 Dość dużo, napisać funkcja, która może to zrobić. 1079 00:56:40,425 --> 00:56:42,300 Jestem rzeczywiście będzie przełączyć na IDE. 1080 00:56:42,300 --> 00:56:54,560 1081 00:56:54,560 --> 00:56:56,740 To nie jest load-- tam idziemy. 1082 00:56:56,740 --> 00:57:00,990 >> Więc zrobiłem tutaj jest stworzył char *, pierwszy ciąg, 1083 00:57:00,990 --> 00:57:01,930 nazywa pset7.zip. 1084 00:57:01,930 --> 00:57:04,530 Mam zamiar powiększyć. 1085 00:57:04,530 --> 00:57:08,520 Został utworzony drugi ciąg nazywa finalpaper.docx. 1086 00:57:08,520 --> 00:57:12,649 I napisz mi funkcję, gdy zwany będzie po prostu wydrukować 1087 00:57:12,649 --> 00:57:13,690 rozszerzenia nazw plików. 1088 00:57:13,690 --> 00:57:16,702 1089 00:57:16,702 --> 00:57:19,660 Może potrwać kilka minut do myślenia o tym, jak masz zamiar to zrobić. 1090 00:57:19,660 --> 00:57:22,510 Nieco trudniejsze niż ostatni, 1091 00:57:22,510 --> 00:57:24,770 ale zużycie jest prawie dokładnie taki sam. 1092 00:57:24,770 --> 00:57:29,670 1093 00:57:29,670 --> 00:57:30,170 Tak. 1094 00:57:30,170 --> 00:57:37,540 Więc napisać funkcję o nazwie rozszerzenie że jeśli dam ci nazwy pliku, 1095 00:57:37,540 --> 00:57:41,340 gdybym daje pset7.zip-- I chcą, aby wydrukować tylko .zip. 1096 00:57:41,340 --> 00:57:45,040 1097 00:57:45,040 --> 00:57:49,890 Jeśli dam chcesz finalpaper.docx, po prostu wydrukować .docx, 1098 00:57:49,890 --> 00:57:51,538 po prostu rozszerzenie jakiegoś pliku. 1099 00:57:51,538 --> 00:59:03,720 1100 00:59:03,720 --> 00:59:07,790 >> To właściwie tylko zajmuje dwie linijki kodu. 1101 00:59:07,790 --> 00:59:10,692 Więc staram się zobaczyć, czy Ciebie Może zrobić to można w to. 1102 00:59:10,692 --> 00:59:12,400 Właściwie, to tylko zajmuje jedną linię kodu. 1103 00:59:12,400 --> 00:59:14,074 Ale dwie linie to chyba bardziej standardowe. 1104 00:59:14,074 --> 00:59:20,408 1105 00:59:20,408 --> 00:59:22,574 Jakie funkcje są prawdopodobnie będzie chciał zadzwonić? 1106 00:59:22,574 --> 00:59:25,286 1107 00:59:25,286 --> 00:59:26,260 >> PUBLICZNOŚCI: strrchr. 1108 00:59:26,260 --> 00:59:27,343 >> ANDI PENG: strrchr, prawda. 1109 00:59:27,343 --> 00:59:29,570 Ponieważ szukamy z prawej lewo. 1110 00:59:29,570 --> 00:59:32,107 1111 00:59:32,107 --> 00:59:33,940 Nie dałem wam przykład w ten sposób, 1112 00:59:33,940 --> 00:59:38,870 ale jeśli dałem wam przykład, jak www.apple.com i chciałem po prostu 1113 00:59:38,870 --> 00:59:43,005 .com, byłby to przykład, gdzie chcesz zadzwonić ostatnią instancję 1114 00:59:43,005 --> 00:59:44,630 okresu, a nie pierwszy, prawda? 1115 00:59:44,630 --> 00:59:47,470 Jeśli były połączenia strchr, to nie dałem ci apple.com. 1116 00:59:47,470 --> 00:59:49,966 >> Jeśli nazywa strrchr, to dałby ci .com. 1117 00:59:49,966 --> 00:59:53,062 A więc należy być ostrożnym, na których ways-- w moim przykładzie, 1118 00:59:53,062 --> 00:59:55,520 można prawdopodobnie może mieć po prostu napisał go za pomocą strchr, 1119 00:59:55,520 --> 00:59:57,130 ponieważ jest tylko jedna kropka. 1120 00:59:57,130 --> 00:59:59,790 Jednak w innych przypadkach to nie może być przypadek. 1121 00:59:59,790 --> 01:00:04,960 I tak zawsze staram się projektować kod dobrze, więc that-- tak? 1122 01:00:04,960 --> 01:00:07,365 >> PUBLICZNOŚCI: Więc w Przykład po prostu powiedział, 1123 01:00:07,365 --> 01:00:11,760 Gdy to zrobisz strrchr że będzie daje .com lub po prostu przyjść? 1124 01:00:11,760 --> 01:00:13,960 >> ANDI PENG: To daje .com. 1125 01:00:13,960 --> 01:00:14,794 >> PUBLICZNOŚCI: OK. 1126 01:00:14,794 --> 01:00:15,460 ANDI PENG: Tak. 1127 01:00:15,460 --> 01:00:18,090 1128 01:00:18,090 --> 01:00:19,744 Wskazuje, gdzie znalazłem. 1129 01:00:19,744 --> 01:00:20,244 Tak. 1130 01:00:20,244 --> 01:00:24,120 1131 01:00:24,120 --> 01:00:25,188 30 sekund może być? 1132 01:00:25,188 --> 01:00:25,688 Tak. 1133 01:00:25,688 --> 01:00:56,640 1134 01:00:56,640 --> 01:00:58,500 Wszyscy dobrze, a może nieco więcej czasu? 1135 01:00:58,500 --> 01:01:01,057 1136 01:01:01,057 --> 01:01:01,640 Podniesienie rąk? 1137 01:01:01,640 --> 01:01:02,320 Pokaż głów? 1138 01:01:02,320 --> 01:01:04,801 1139 01:01:04,801 --> 01:01:05,300 Chłodny. 1140 01:01:05,300 --> 01:01:07,924 Każdy, kto chce dać mi pierwszy linia kodu dla tego programu? 1141 01:01:07,924 --> 01:01:11,861 1142 01:01:11,861 --> 01:01:12,777 PUBLICZNOŚCI: [niesłyszalne]. 1143 01:01:12,777 --> 01:01:16,190 1144 01:01:16,190 --> 01:01:20,160 >> ANDI PENG: Więc przede wszystkim, niech może podzielenie go. 1145 01:01:20,160 --> 01:01:24,370 Więc jaki jest rodzaj powrotu strrchr? 1146 01:01:24,370 --> 01:01:26,150 Wracajmy. 1147 01:01:26,150 --> 01:01:29,015 strrchr, co jest zwracany typ? 1148 01:01:29,015 --> 01:01:29,640 PUBLICZNOŚCI: Char * 1149 01:01:29,640 --> 01:01:31,270 ANDI PENG: To char *, prawda? 1150 01:01:31,270 --> 01:01:35,760 Co oznacza, że ​​jesteś prawdopodobnie będzie chce stworzyć kolejny char * do rodzaju 1151 01:01:35,760 --> 01:01:40,400 w sklepie, kiedy to powrót do, prawda? 1152 01:01:40,400 --> 01:01:43,200 Bo jeśli zadzwonisz strrchr funkcji, 1153 01:01:43,200 --> 01:01:47,030 to się daje wskaźnik do wszędzie tam, gdzie okazało się, że ostatni okres, 1154 01:01:47,030 --> 01:01:47,580 dobrze? 1155 01:01:47,580 --> 01:01:49,913 >> Ale będziesz chciał zapisać, że gdzieś, prawda? 1156 01:01:49,913 --> 01:01:52,612 I tak, w jaki sposób kod to w naszym programie? 1157 01:01:52,612 --> 01:01:54,320 PUBLICZNOŚCI: Sprawiasz char * [niesłyszalne]. 1158 01:01:54,320 --> 01:01:55,240 ANDI PENG: Tak. 1159 01:01:55,240 --> 01:01:57,120 PUBLICZNOŚCI: [niesłyszalne]. 1160 01:01:57,120 --> 01:01:58,000 ANDI PENG: strrchr. 1161 01:01:58,000 --> 01:01:58,390 Tak. 1162 01:01:58,390 --> 01:01:59,306 Och, brakowało R istnieje. 1163 01:01:59,306 --> 01:02:02,877 PUBLICZNOŚCI: Nazwa pliku [niesłyszalne]. 1164 01:02:02,877 --> 01:02:03,376 Co to jest? 1165 01:02:03,376 --> 01:02:04,420 Och, to tylko s. 1166 01:02:04,420 --> 01:02:04,940 >> ANDI PENG: Och, to jest po prostu s. 1167 01:02:04,940 --> 01:02:05,610 Tak, przepraszam. 1168 01:02:05,610 --> 01:02:06,330 Moja wina. 1169 01:02:06,330 --> 01:02:08,370 Przykłady nie pasuje. 1170 01:02:08,370 --> 01:02:12,130 >> PUBLICZNOŚCI: I wtedy kropka. 1171 01:02:12,130 --> 01:02:13,970 >> ANDI PENG: Tak. 1172 01:02:13,970 --> 01:02:16,570 Bądź ostrożny, gdy faceci are-- tutaj, pozwól mi przybliżyć. 1173 01:02:16,570 --> 01:02:22,355 1174 01:02:22,355 --> 01:02:24,400 No to jedziemy. 1175 01:02:24,400 --> 01:02:26,770 Bądź ostrożny, gdy faceci pisania, zwłaszcza gdy 1176 01:02:26,770 --> 01:02:27,920 robisz tylko char. 1177 01:02:27,920 --> 01:02:32,480 To naprawdę łatwe do przypadkowego tylko nie cudzysłowów, a nie pojedyncza. 1178 01:02:32,480 --> 01:02:35,212 >> To nie zadziała. 1179 01:02:35,212 --> 01:02:36,670 Twój kompilator będzie narzekać. 1180 01:02:36,670 --> 01:02:38,790 A twoja funkcja jest po prostu nie będzie działać. 1181 01:02:38,790 --> 01:02:40,540 A więc należy zachować ostrożność podczas robisz rzeczy 1182 01:02:40,540 --> 01:02:42,622 ze znakami, że to pojedyncze cudzysłowy. 1183 01:02:42,622 --> 01:02:44,830 I tak robi ten wiersz Kod sensu wszystkich? 1184 01:02:44,830 --> 01:02:46,810 My tworzymy char * wskaźnik. 1185 01:02:46,810 --> 01:02:50,310 Ponieważ zwrotów strrchr coś typu wskaźnika. 1186 01:02:50,310 --> 01:02:53,440 >> I tak mamy zamiar zadzwonić strchr na s, który jest ciągiem, plik 1187 01:02:53,440 --> 01:02:55,140 Imię, które przekazujemy w. 1188 01:02:55,140 --> 01:02:59,750 I szukamy ostatni wystąpieniem okresu, który jest 1189 01:02:59,750 --> 01:03:02,200 tylko pojedynczy cytat dot pojedynczego cudzysłowu. 1190 01:03:02,200 --> 01:03:02,700 Tak. 1191 01:03:02,700 --> 01:03:05,180 >> PUBLICZNOŚCI: Gdy używamy cudzysłowów i kiedy używamy apostrofów? 1192 01:03:05,180 --> 01:03:05,320 >> ANDI PENG: Tak. 1193 01:03:05,320 --> 01:03:07,180 Więc cudzysłowy są zawsze, gdy 1194 01:03:07,180 --> 01:03:10,120 mają ciąg więcej niż tylko jeden. 1195 01:03:10,120 --> 01:03:13,070 Więc jeśli robisz strstr, która jest tym, który cię 1196 01:03:13,070 --> 01:03:16,320 wyszukać ciąg na ciąg, ciebie by przekazać ją w cudzysłów. 1197 01:03:16,320 --> 01:03:18,070 Ale za każdym razem, to tylko pojedynczy znak, 1198 01:03:18,070 --> 01:03:19,870 chcesz zrobić, apostrofów. 1199 01:03:19,870 --> 01:03:22,880 >> To jest dobra rzecz, aby pamiętać. 1200 01:03:22,880 --> 01:03:25,864 Więc teraz, że mamy wskaźnik, co mamy z nim zrobić? 1201 01:03:25,864 --> 01:03:27,780 Pytam was, aby drukując go, prawda? 1202 01:03:27,780 --> 01:03:30,940 Więc [niesłyszalne], chcesz daj mi wiersz kodu? 1203 01:03:30,940 --> 01:03:31,780 >> PUBLICZNOŚCI: printf-- 1204 01:03:31,780 --> 01:03:32,446 >> ANDI PENG: Tak. 1205 01:03:32,446 --> 01:03:35,344 1206 01:03:35,344 --> 01:03:36,843 PUBLICZNOŚCI: --you potrzebujesz uchwyt miejsce. 1207 01:03:36,843 --> 01:03:37,340 ANDI PENG: Tak. 1208 01:03:37,340 --> 01:03:38,334 PUBLICZNOŚCI: Broszura uchwyt miejsce. 1209 01:03:38,334 --> 01:03:40,322 Nie wiem, co miejsce Uchwyt jest tylko punkt do niego. 1210 01:03:40,322 --> 01:03:40,819 >> OK. 1211 01:03:40,819 --> 01:03:42,027 Pomińmy, że teraz to. 1212 01:03:42,027 --> 01:03:44,556 PUBLICZNOŚCI: A potem comma-- 1213 01:03:44,556 --> 01:03:45,720 >> ANDI PENG: Pointer, prawda? 1214 01:03:45,720 --> 01:03:47,970 >> PUBLICZNOŚCI: Pointer, yup. 1215 01:03:47,970 --> 01:03:51,140 >> ANDI PENG: Więc trochę podchwytliwe pytanie, ma do czynienia ze wskaźnikami i smyczki 1216 01:03:51,140 --> 01:03:53,130 że mamy trochę rozmawialiśmy o już. 1217 01:03:53,130 --> 01:03:57,766 Jaki rodzaj uchwytu miejsce jak my potrzeba wskaźnika do char *? 1218 01:03:57,766 --> 01:03:59,574 >> PUBLICZNOŚCI: [niesłyszalne]. 1219 01:03:59,574 --> 01:04:00,240 ANDI PENG: Tak. 1220 01:04:00,240 --> 01:04:02,522 To prostsze niż myślicie, że jest. 1221 01:04:02,522 --> 01:04:03,230 PUBLICZNOŚCI: String? 1222 01:04:03,230 --> 01:04:04,730 ANDI PENG: To jest po prostu ciąg, dokładnie. 1223 01:04:04,730 --> 01:04:06,595 Bo pamiętam, ciągi tak naprawdę nie istnieje. 1224 01:04:06,595 --> 01:04:09,430 Char * jest dokładna samo jak łańcuch. 1225 01:04:09,430 --> 01:04:14,461 I tak naprawdę to s jest co powinny zostać wykorzystane przez cały czas. 1226 01:04:14,461 --> 01:04:14,960 OK. 1227 01:04:14,960 --> 01:04:17,810 >> Zobaczmy, czy możemy spróbować uruchomić tego. 1228 01:04:17,810 --> 01:04:19,450 Zróbmy rozszerzenie make. 1229 01:04:19,450 --> 01:04:22,710 1230 01:04:22,710 --> 01:04:23,396 Chłodny. 1231 01:04:23,396 --> 01:04:28,830 Wy zobaczyć, jak zdałem w psset7.zip i finalpaper.docx, 1232 01:04:28,830 --> 01:04:32,500 i to po prostu wypisuje i .zip Docx? 1233 01:04:32,500 --> 01:04:34,150 Ma sens? 1234 01:04:34,150 --> 01:04:36,660 >> OK, więc myślę, że w twoim patrzeć Funkcja w pset jesteś 1235 01:04:36,660 --> 01:04:41,050 będzie pytanie, czy Ciąg ma pewną zakończenie, 1236 01:04:41,050 --> 01:04:42,800 trzeba dać pewien kod błędu. 1237 01:04:42,800 --> 01:04:44,820 I tak to będzie straszne. 1238 01:04:44,820 --> 01:04:47,350 Bo czy można wymyślić co rozszerzenie jest, 1239 01:04:47,350 --> 01:04:49,810 można następnie porównać, że rozszerzenie, aby zobaczyć, czy pasuje do 1240 01:04:49,810 --> 01:04:51,251 z pewnym rozszerzenia. 1241 01:04:51,251 --> 01:04:53,250 A potem można wrócić komunikat o błędzie, prawda? 1242 01:04:53,250 --> 01:04:53,860 Tak. 1243 01:04:53,860 --> 01:04:55,370 >> PUBLICZNOŚCI: Więc nie robimy dodać 1 lub coś? 1244 01:04:55,370 --> 01:04:56,530 Wskaźnik pójdzie do the-- 1245 01:04:56,530 --> 01:04:56,660 >> ANDI PENG: Nie. 1246 01:04:56,660 --> 01:04:57,530 >> PUBLICZNOŚCI: --point po nim. 1247 01:04:57,530 --> 01:04:58,196 >> ANDI PENG: Tak. 1248 01:04:58,196 --> 01:05:00,650 Wskazuje ona dokładnie których wystąpienie było. 1249 01:05:00,650 --> 01:05:04,010 Tak na przykład tutaj, jesteśmy szukając okresie. 1250 01:05:04,010 --> 01:05:06,597 Więc to będzie powrót wskaźnik do okresu. 1251 01:05:06,597 --> 01:05:08,930 I wtedy to się dzieje, aby wydrukować wychodząc z tego okresu. 1252 01:05:08,930 --> 01:05:10,260 >> Więc nie trzeba dodać 1. 1253 01:05:10,260 --> 01:05:15,000 Mimo, że jest to całkowicie w porządku, aby, jeśli nie masz pewności, po prostu rodzaj 1254 01:05:15,000 --> 01:05:16,070 od przetestować go samodzielnie. 1255 01:05:16,070 --> 01:05:17,590 Zbuduj program przykładowy. 1256 01:05:17,590 --> 01:05:20,240 Przetestuj to sam i zobaczyć, gdzie to jest drukowanie. 1257 01:05:20,240 --> 01:05:23,380 To nie jest też zły sposób to zrobić. 1258 01:05:23,380 --> 01:05:26,040 >> Chłodny. 1259 01:05:26,040 --> 01:05:28,880 I to jest dość dużo wszystko Miałem dla was dzisiaj. 1260 01:05:28,880 --> 01:05:31,440 1261 01:05:31,440 --> 01:05:33,300 Zrobiliśmy dużo pset rzeczy dzisiaj. 1262 01:05:33,300 --> 01:05:35,720 Tak więc w razie wątpliwości, jak Powiedziałem, zawsze patrzeć 1263 01:05:35,720 --> 01:05:37,620 string.h biblioteka dla tego pset. 1264 01:05:37,620 --> 01:05:40,370 Nie będzie wiele Funkcja tam, które mogą być użyteczne. 1265 01:05:40,370 --> 01:05:41,300 Niektóre z nich mogą być użyteczne. 1266 01:05:41,300 --> 01:05:42,133 I naprawdę nie wiem. 1267 01:05:42,133 --> 01:05:44,370 Wade przez niego, nie cała masa z nich. 1268 01:05:44,370 --> 01:05:49,100 strstr, strchr, strrchr są super, super pomocny, jak również 1269 01:05:49,100 --> 01:05:52,080 z strcpys i strcasecmps że mamy już używany. 1270 01:05:52,080 --> 01:05:56,510 >> To jest po prostu dużo bawić z łańcuchy, ustalenia, czy są one równe, 1271 01:05:56,510 --> 01:05:59,960 coraz rzeczy z ciągów i jest w stanie prawidłowo otwierać pliki. 1272 01:05:59,960 --> 01:06:02,252 Jest wiele plików I / O. pset naprawdę nie jest tak źle. 1273 01:06:02,252 --> 01:06:04,210 Masz zamiar wziąć spojrzeć na to, pobierz go, 1274 01:06:04,210 --> 01:06:05,590 i zobaczyć całą masę kodu. 1275 01:06:05,590 --> 01:06:09,220 Nie martw się, kod, właściwie napisać nie jest źle. 1276 01:06:09,220 --> 01:06:12,870 Jeśli ktoś ma problemy z ich Serwer, przyjdź do mnie po sekcji. 1277 01:06:12,870 --> 01:06:16,040 >> Przepraszam jeszcze raz za nie przynosząc cukierki Halloween. 1278 01:06:16,040 --> 01:06:18,790 Nie wiem, co się ze mną dzieje. 1279 01:06:18,790 --> 01:06:20,800 Ale mamy podwójne cukierki następnym razem. 1280 01:06:20,800 --> 01:06:25,620 I powodzenia w pset w tym tygodniu. 1281 01:06:25,620 --> 01:06:27,170 Tak. 1282 01:06:27,170 --> 01:06:28,722