[Powered by Google Translate] [5 અઠવાડિયાની] [ડેવિડ જે Malan, હાર્વર્ડ યુનિવર્સિટી] [આ CS50 છે.] [CS50.TV] [વુમન] તેમણે પડેલો છે; જે અંગે, મને ખબર નથી. [મેન] તેથી આપણે શું જાણો છો? [વુમન] તે 9:15 ખાતે, રે Santoya આ એટીએમ હતો. [મેન] તેથી પ્રશ્ન, તેણે કરવામાં આવી હતી 9:16 અંતે કરવાનું? [વુમન] કંઈક અંતે 9 એમએમની શૂટીંગ. કદાચ તેઓ સ્નાઈપર જોવા મળી હતી. [મેન] અથવા તેઓ તેમની સાથે કામ કરતો હતો. [વુમન] પ્રતીક્ષા. પાછળ એક જાઓ. [મેન] તમે શું જોશે? [♫ Suspenseful સંગીત ♫] [વુમન] તેના ચહેરા લાવો છે. સંપૂર્ણ સ્ક્રીન. [મેન] તેમનો ચશ્મા. >> એક પ્રતિબિંબ છે. [♫ Suspenseful સંગીત ♫] [મેન] તે આ Nuevita બેઝબોલ ટીમ છે. કે તેમના લોગો છે. [વુમન] અને ભલે કે જેકેટ પહેર્યા છે વાત છે. [ડેવિડ Malan] તેથી, આ CS50 5 સપ્તાહ છે, અને આજે તો અમે તમારા માટે ટેલિવિઝન અને ફિલ્મ એક બીટ વિનાશ. તેથી જ્યારે પણ તમે આ અહીં એક જેવા શો જોઈ રહ્યાં છો, અને કોપ્સ સે "છે કે જે તમને સાફ કરી શકાતી અપ?" અથવા "વિસ્તૃત" ત્યાં કોઈ વાસ્તવિક દુનિયામાં વિસ્તૃત છે. હકીકતમાં, તમે ખરેખર વિચાર શું આ જેવી થોડી સમસ્યા છે. હું એક પાનું ના સ્ટાફ ફોટા ખેંચી કર્યું છે. આ એક ફોટોશોપ નામના પ્રોગ્રામ છે. આ 1 2 Bowdens છે, 1 3 ની વાસ્તવમાં Bowdens આજે, કારણ કે અમે શ્રીમતી બોડેન અહીં તેમજ રોબ અને પોલ સાથે હોય છે. પરંતુ અહીં સ્ક્રીન પર રોબ છે, અને જો અમે તે ઝળહળવું પર ઝૂમ તેણે હંમેશા આ આંખ હતી જાય, તમે ખરેખર શું છે કે તમે શું છે, તો તમે શું કરો. આ છે "ઉન્નત," જેથી "સીએસઆઇ" તે બીટ ખોટું છે. ત્યાં એક અન્ય ક્લિપ છે, જો આપણે માત્ર થોડો સમય સુધી "સીએસઆઇ" પર પસંદ કરી શકો છો. આ એક સરસ માટે અત્યારથી મૂક જો તમે કરવા માંગો છો શબ્દસમૂહ છે તમારા મિત્રો સાથે તકનિકી અવાજ, જ્યારે ખરેખર, તમે ચોક્કસપૂર્વક કશું કહી રહ્યાં છે. [મેન] અઠવાડિયા માટે હું આ ભાડૂતી ગાડીવાળો કિલર હત્યા કરવામાં આવી તપાસ કર્યા છે ચોક્કસ રોગિષ્ઠ આકર્ષણની સાથે. [વુમન # 1] આ વાસ્તવિક સમય છે. [વુમન # 2] હું એ GUI વિઝ્યુઅલ બેઝિકનો ઉપયોગ કરીને ઇન્ટરફેસ બનાવો, જુઓ જો હું IP સરનામા ટ્રેક કરી શકો છો. [Malan] તેથી એકાંતે સમન્વયન સમાપ્ત ઓડિયો, એ GUI વિઝ્યુઅલ બેઝિકનો ઉપયોગ કરીને ઈન્ટરફેસ બનાવવા માટે IP સરનામા ટ્રેક સંપૂર્ણપણે નકામુ છે. આ દિવસોમાં તમે વિઝ્યુઅલ બેઝિક ઉપયોગ ન હો, ત્યાં એ GUI માટે આ બોલ પર કોઈ જરૂર નથી, અને IP સરનામું તકનીકી ચોક્કસ શબ્દ હતો. તેથી નજર રાખો આ માટે, અને મારા એક લોકપ્રિય: આ એક થોડી વધુ arcane છે, કારણ કે તમે એક અલગ ભાષા જાણવાની જરૂર છે. ત્યાં એક ઉદ્દેશ C-કહેવાય ભાષા છે, જે સી એક superset છે છે જે તે સી પ્લસ કેટલીક વધારાની સુવિધાઓ તેમના પ્રોગ્રામિંગ પદાર્થ આધારિત વચ્ચે થાય છે. અને આ ભાષા કે એપલે આઇઓએસ પ્રોગ્રામિંગ માટે પ્રખ્યાત છે. અને તેથી અહીં એક અલગ એકસાથે શો ક્લિપ છે, માંથી "નંબર" કે જો તમે ખરેખર તમારા TiVo અને વિરામ પર નજીકથી અધિકાર ક્ષણે જુઓ, તમે જોશો કે તેઓ અંતે શોધી રહ્યાં છો તે શું ન તદ્દન શું વર્ણવામાં આવ્યું છે. દો અને મને એક અલગ ઓડિયો કનેક્ટર અહીં પ્રયત્ન કરો અને જુઓ અમે શકતો નથી જો સુમેળ ઑડિયો આ સમય રાખો. હું તમે "નંબર્સ." આપે છે [મૅન # 1] તે 32-bit IPv4 સરનામું છે. [2 # મેન] IP, કે જે ઈન્ટરનેટ છે. >> ખાનગી નેટવર્ક. તે અનિતા ખાનગી નેટવર્ક છે. [Malan] ઠીક. આ ઉદ્દેશ C-છે, અને તે અમુક બાળક રંગ કાર્યક્રમ માટે છે, જેમ તમે કદાચ ત્યાં ચલ નામ પરથી અનુમાન દોરવું કરી શકો છો. જેથી, પછી તેને "નંબર્સ." આજે અને આ અઠવાડિયે જેથી અમે રજૂઆત વિદેશી અને તેથી સમસ્યાઓ સંદર્ભમાં વિશ્વના થોડો. આજે એક સંક્ષિપ્ત વ્યાખ્યાન શકે છે કારણ કે ત્યાં અહીં એક ખાસ ઘટના થશે પછીથી, તેથી અમે એક ડોકિયું લે છે, અને પડશે બન્ને વિદ્યાર્થીઓ અને આનંદદાયક માતા - પિતા આજે પીંજવું વસ્તુઓ કે જે ક્ષિતિજ પર છે કેટલાક. તેમની વચ્ચે, સોમવાર, તમે થોડા વધુ સહપાઠીઓને હશે. EdX હાર્વર્ડ અને ખુલ્લા courseware માટે એમઆઇટીએસ નવા ઑનલાઇન પહેલ અને વધુ, હાર્વર્ડના કેમ્પસ પર સોમવારે શરૂ થયેલ છે. છેલ્લા ગણતરી મુજબ, - જે આવે સોમવાર અર્થ છે કે તમે પડશે 86,000 વધારાની સહપાઠીઓને હિસ્સો CS50 વ્યાખ્યાન સાથે સાથે નીચેની કરશે અને વિભાગો અને વૉકથ્રૂઝ અને સમસ્યા સમૂહો. અને આ ભાગ તરીકે, તમે પ્રારંભિક વર્ગ સભ્યો બની જશે CS50 અને હવે CS50x. આ ભાગ તરીકે, હવે ખ્યાલ છે, કે જે અમુક upsides તેમજ હશે. આ માટે તૈયાર વિદ્યાર્થીઓ મોટા નંબર માટે, વિચાર, તે પૂરતો કહે છે કે ભલે અમે 108 TFs અને સીએએસ હોય છે, ન તદ્દન શ્રેષ્ઠ ગુણોત્તર / વિદ્યાર્થી શિક્ષક એકવાર અમે 80,000 અન્ય વિદ્યાર્થીઓ નહીં. તેથી અમે ઘણા સમસ્યા વર્ગીકરણ શકાતી નથી જઈ રહ્યાં છો જાતે સુયોજિત કરે છે. જેથી સમસ્યા સમૂહ આ સપ્તાહ રજૂઆત CS50 તપાસ થશે, જે આદેશ વાક્ય ઉપયોગીતા જે ઉપકરણ અંદર રહ્યું છે કે તમે એક વાર તમે આ સપ્તાહના પછી અપડેટ મળશે, અને તમે આદેશ ચલાવો કરવાનો પ્રયત્ન કરીશું, 50 ચકાસવા માટે, તમારા પોતાના pset પર, અને તમે કે તમારી કાર્યક્રમ છે કે કેટલીક પ્રતિસાદ મળશે સાચું અથવા ખોટું અનુસાર વિવિધ ડિઝાઇન સ્પષ્ટીકરણો કે અમે પ્રદાન કરેલા. જેથી પર વધુ અને સમસ્યા સેટ સ્પષ્ટીકરણ અને આ CS50x સહપાઠીઓને આ ઉપયોગ કરીને કરવામાં આવશે છે. તેથી સમસ્યા 4 સમૂહ ફોરેન્સિક્સ વિશે બધું છે. અને આ ભાગ કેટલીક સામગ્રી વાસ્તવિક જીવન દ્વારા પ્રેરણા આપી હતી, જેમાં જ્યારે હું ગ્રેજ્યુએટ સ્કૂલ હતી, હું સાથે હંમેશ માટે ઇન્ટર્ન આ મિડલસેક્સ કાઉન્ટીના ડિસ્ટ્રીક્ટ એટર્નીની ઓફિસ ફોરેન્સિક કાર્ય તેમના મુખ્ય ફોરેન્સિક તપાસનીસ સાથે, અને આ શું પૂરવાર છે, મને લાગે છે કે હું થોડા સપ્તાહની ભૂતકાળ ઉલ્લેખ કર્યો, ધી માસ રાજ્ય પોલીસ અથવા અન્ય છે આવે છો, તો તેઓ આ બોલ પર હાર્ડ ડ્રાઈવો અને CD ઓ અને ફ્લોપી ડિસ્ક જેવી વસ્તુઓ ડ્રોપ કરશે અને જેમ, અને પછી વિદેશી ઓફિસ ધ્યેય સહમતી હતી કે શું ત્યાં હતો કે અમુક પ્રકારના પુરાવા ન હતા. આ સ્પેશિયલ ઈન્વેસ્ટીગેશન એકમ હતું, તેથી તેને સફેદ કોલર ગુનો હતો, તે ગુના વધુ મુશ્કેલીમાં પ્રકારનો કાર્યક્રમ હતો, ડિજિટલ મીડિયા અમુક પ્રકારના સંડોવતા કંઈપણ; તારણ આપે છે કે નહીં કે ઘણા લોકો એક કહેતા ઇમેઇલ લખવા "હું તે કર્યું હતું." તેથી ઘણી વાર આ વિદેશી શોધ અપ કે બધા ખૂબ ફળ બંધ કર્યું નહોતું, પરંતુ ક્યારેક લોકો જેમ કે ઇમેઇલ્સ લખી હતી. તેથી કેટલીક વાર પ્રયત્નો મળ્યા હતા. પરંતુ આ ફોરેન્સિક pset સુધી દોરી જાય છે, અમે 4 ગ્રાફિક્સ એક બીટ pset માં દાખલ કરવામાં આવશે. તેથી તમે કદાચ મંજૂર JPEGs GIFs, અને આ દિવસોમાં જેમ આ વસ્તુઓ લે છે, પરંતુ જો તમે ખરેખર તે વિશે વિચારો, ઇમેજ, મોટાભાગના રોબ ચહેરાની જેમ, બિંદુઓને શ્રેણી છે, અથવા પિક્સેલ્સ તરીકે રજૂ કરવામાં કરી શકાય છે. હવે, જે રોબ ચહેરો કિસ્સામાં, ત્યાં રંગો તમામ પ્રકારના છે, અને અમે વ્યક્તિગત બિંદુઓ, otherwide પિક્સેલ્સ તરીકે ઓળખાય જુઓ શરૂ, એકવાર અમે સાઇન ઝૂમ શરૂ પરંતુ જો આપણે વિશ્વમાં થોડી સરળ અને માત્ર કહે છે કે અહીં આ રોબ છે કાળા અને સફેદ, તેમજ માટે પ્રતિનિધિત્વ કાળા અને સફેદ આપણે માત્ર દ્વિસંગી વાપરી શકો છો. અને જો અમે દ્વિસંગી ઉપયોગ જઈ રહ્યાં છો, 1 અથવા 0, અમે આ જ ઇમેજ વ્યક્ત કરી શકો છો માતાનો રોબ બિટ્સ આ પેટર્ન સ્માઈલિંગ ચહેરો: 11000011 પ્રતિનિધિત્વ સફેદ, સફેદ, કાળા, કાળા, કાળા, કાળા, સફેદ સફેદ. અને તેથી તે એક વિશાળ કૂદકો, પછી નથી, માટે રંગબેરંગી ફોટોગ્રાફ્સ વિશે વાત કરવાનું શરૂ કરો. વસ્તુઓ છે કે જે તમને Facebook પર જોવા અથવા ડિજીટલ કેમેરા સાથે લઈ જતા, પરંતુ, ચોક્કસપણે, જ્યારે તે રંગો માટે આવે છે, તમે વધુ બિટ્સ જરૂર છે. અને તદ્દન ફોટોગ્રાફ વિશ્વમાં સામાન્ય રંગ 1-bit ઉપયોગ ન હોય, કારણ કે આ સૂચવે છે, પણ 24-bit રંગ છે, જ્યાં તમે ખરેખર લાખો રંગ મળે છે. તેથી કિસ્સામાં જ્યારે અમે રોબ આંખ પર ઝૂમ કરેલું, કે વિવિધ રંગબેરંગી શક્યતાઓ લાખો કોઈપણ સંખ્યાની હતી. તેથી અમે સમસ્યા 4 સેટ તેમજ walkthrough આ રજૂઆત પડશે, જે આજે સામાન્ય 2:30 બદલે 3:30 ખાતે શુક્રવારે અહીં વ્યાખ્યાન કારણે હશે. પરંતુ વિડિઓ ઓનલાઈન હંમેશની જેમ, કાલે આવશે. અમે પણ તમે બીજી ફાઇલ ફોર્મેટમાં દાખલ પડશે. તેથી આ ઇરાદાપૂર્વક પ્રથમ લાવનારાઓ જોવા રાખવાનો છે, પરંતુ આ માત્ર એક સી સ્ટ્રક્ટ માટે કેટલાક દસ્તાવેજો છે. તે તારણ કે જે Microsoft, વર્ષો પહેલા આ ફોર્મેટમાં લોકપ્રિય બનાવવામાં મદદ કરી, આ બીટમેપ ફાઇલ ફોર્મેટ, BMP, અને આ સુપર સરળ હતું કહેવાય છે, રંગબેરંગી ગ્રાફિકવાળા ફાઈલ બંધારણમાં કે અમુક સમય માટે શાંત ઉપયોગ કરવામાં આવ્યો હતો અને ક્યારેક હજુ પણ ડેસ્કટોપ પર વોલપેપરો છે. જો તમે Windows XP અને આ ટેકરીઓનો અને વાદળી આકાશમાં પાછા વિચારો, જે સામાન્ય હતી BMP, અથવા બીટમેપ ઈમેજ, અને ત્યાર બાદ બીટમેપ આપણા માટે આનંદ છે કારણ કે તેઓ થોડી વધુ જટિલતા છે. તે તદ્દન તરીકે 0 અને 1 ની આ ગ્રિડ તરીકે સરળ નથી; ને બદલે, તમે ફાઈલ શરૂઆતમાં હેડર જેવી વસ્તુઓ હોય છે. તેથી અન્ય શબ્દોમાં, એક bmp. ફાઈલ અંદર 0 અને 1 ની સંપૂર્ણ સમૂહ છે, પરંતુ કેટલીક વધારાની 0 અને 1 ત્યાં માં છે. અને તે તારણ છે કે અમે શું કદાચ માટે વર્ષ માટે મંજુર ભર્યું છે, ડૉક. અથવા. xls અથવા mp3. અથવા MP4. જેમ ફાઈલ બંધારણો, ફાઈલ બંધારણો કે જે તમે પરિચિત છો. વેલ, તે શું પણ નથી ફાઈલ બંધારણમાં હોવો અર્થ આ છે? દિવસ ના અંતે, કારણ કે આ બધી ફાઈલોને અમે ઉપયોગ કરે છે માત્ર 0 અને 1 ની અને કદાચ તે 0 અને 1 ની a, b, c ASCII અથવા જેમ દ્વારા પ્રતિનિધિત્વ પરંતુ દિવસના અંતે મારફતે, તે ફક્ત 0 અને 1 ની. તેથી માનવીઓ માત્ર ક્યારેક ક્યારેક એક નવી ફાઇલ ફોર્મેટ શોધ નક્કી જ્યાં તેઓ પ્રમાણિત બિટ્સની પેટર્ન શું ખરેખર અર્થ કરશે. અને આ અહીં કિસ્સામાં, લોકો જેઓ બીટમેપ ફાઇલ ફોર્મેટ માટે રચાયેલ કહ્યું હતું કે એક બીટમેપ ફાઇલ માં પહેલીવાર બાઇટ ખાતે, 0 ઓફસેટ દ્વારા સૂચિત, ત્યાં, ત્યાં કેટલાક રહસ્યમય નામવાળી ચલ કહેવાય bfType જ હશે, જે ફક્ત બીટમેપ ફાઇલ પ્રકાર માટે વપરાય છે; બીટમેપ ફાઇલ પ્રકાર આ શું છે. તમે અટકળ બાંધવી, કદાચ બીજા પંક્તિ કે 2 સરભર બાઇટ 2 નંબર કરી શકો છો, 0 અને 1 ની છે કે શું પ્રતિનિધિત્વ એક પેટર્ન છે? કંઈક કદ, તે અને ત્યાંથી જાય છે. તેથી સમસ્યા 4 સમૂહ, તમે આ કેટલીક બાબતો દ્વારા ચાલ્યો આવશે. અમે સમાપ્ત તે બધા વિશે caring, પરંતુ નોટિસ તે રસપ્રદ વિચાર શરૂ થાય છે રેખા અથવા 54 બાઇટ, rgbtBlue લીલા, અને Red આસપાસ. જો તમે ક્યારેય ટૂંકાક્ષર RGB, લાલ લીલા વાદળી સાંભળ્યું કર્યું છે, તો આ સંદર્ભ છે. કારણ કે તે તારણ તમે સપ્તરંગી તમામ રંગો ચિતરવાનો કરી શકો છો લાલ અને વાદળી અને લીલા કેટલાક મિશ્રણ છે. અને હકીકતમાં, આ રૂમ માં માતા - પિતા વહેલામાં પ્રોજેક્ટરો કેટલાક યાદ શકે છે. આ દિવસોમાં, તો તમે માત્ર 1 તેજસ્વી પ્રકાશ એક લેન્સ બહાર આવતા જુઓ. પરંતુ એક દિવસ પાછા, તમે લાલ લેન્સ, વાદળી લેન્સ, અને ગ્રીન લેન્સ હતી અને સાથે સાથે તેઓ સ્ક્રીન ધ્યાનમાં રાખીને અને એક રંગીન ચિત્ર રચના કરી હતી. અને ઘણી વાર મધ્યમ શાળાઓ અને ઉચ્ચ શાળાઓમાં તે લેન્સ હશે વાંકું હંમેશા જેથી-સહેજ, તેથી તમે ડબલ અથવા ટ્રિપલ છબીઓ દેખાય જેવું હતા, પણ જે વિચાર હતો. તમે લાલ અને લીલો અને વાદળી ચિત્રો પ્રકાશ હતી. અને તે જ સિદ્ધાંત કમ્પ્યુટર્સ ઉપયોગ થાય છે. તેથી પડકારો વચ્ચે, પછી, તમારા માટે સમસ્યા માં 4 સેટ છે અમુક વસ્તુઓ હશે; એક ખરેખર એક છબી માપ બદલવાનું છે. માટે 0 અને 1 ની એક પેટર્ન લઇ, બહાર આંકડો 0 અને 1 ના હિસ્સામાં આ જેવા માળખામાં શું પ્રતિનિધિત્વ કરે છે, અને પછી બહાર આકૃતિ કેવી રીતે પિક્સેલ્સ નકલ કરવા માટે: આ રેડ્સ, બ્લૂઝ, તો ગ્રીન્સ જેથી અંદર જ્યારે ચિત્ર આ જેવા શરૂઆતમાં લાગે છે, આ જેવા કે પછી તેની જગ્યાએ જોવા શકે છે. અન્ય પડકારો વચ્ચે પણ હોય છે કે જે તમને સોંપી પડશે રહ્યું છે ડિજિટલ કૅમેરા એક એક વાસ્તવિક ફાઇલ ફોરેન્સિક છબી અને તે કેમેરા પર, એક વખત સમય પર, ફોટા સંપૂર્ણ સમૂહ હતા. આ સમસ્યા, અમે છે આકસ્મિક ભૂંસી અથવા હતી ઇમેજ કોઈક બગડી. ખરાબ વસ્તુઓ ડિજિટલ કેમેરા સાથે થાય છે, અને તેથી અમે ઝડપથી 0 અને 1 ના તમામ નકલ આ બોલ પર તમારા માટે કે કાર્ડ, 1 મોટી ફાઈલ તેમને બધા સેવ કરો, અને પછી અમે તેમને તમે સોંપવાની પડશે સમસ્યા માં 4 સેટ છે કે જેથી તમે સી એક કાર્યક્રમ કે જેની સાથે પુનઃપ્રાપ્ત લખી શકો છો તે JPEGs તમામ, આદર્શ. અને તે તારણ છે કે JPEGs છે, તેમ છતાં તેઓ એક જટિલ ફાઇલ ફોર્મેટ કંઈક અંશે કરશો, તેઓ વધુ આ સ્માઈલિંગ અહીં ચહેરો કરતાં જટિલ ખૂબ છો. તે તારણ છે કે જે દરેક JPEG 0 અને 1 ના જ તરાહો સાથે શરૂ થાય છે. તેથી, જ્યારે કે લૂપ અથવા સમાન માટે લૂપ ઉપયોગ કરીને, તમે બધા 0 અને આ ફોરેન્સિક છબી 1 ની ઉપર ફરી વળવું કરી શકો છો અને દરેક વખતે જ્યારે તમે વિશિષ્ટ પેટર્ન કે જે સમસ્યા હિસ્સો સેટ સ્પષ્ટીકરણમાં વ્યાખ્યાયિત છે જુઓ, તમે 'ઓહ, અહીં છે, ઘણી ઊંચી સંભાવના સાથે ધારણ કરી શકે છે, કોઈ JPEG શરૂઆત અને, 'જલદી તમે શોધી જ પેટર્ન, બાઇટ્સ અથવા કિલોબાઈટોમાં અથવા મેગાબાઇટ્સ કેટલાક પાછળથી નંબર, તમે ધારે Ooh, 'કરી શકો છો! અહીં એક બીજા JPEG, ફોટો હું પ્રથમ એક પછી લીધો છે. મને કે પ્રથમ ફાઈલ વાંચવાથી બંધ, આ એક નવી લેખિત શરૂ કરો. ' અને 4 pset માટે તમારા કાર્યક્રમ નું આઉટપુટ ઘણા 50 તરીકે JPEGs પ્રયત્ન રહ્યું છે. અને જો તે 50 JPEGs નથી, તમે એક લૂપ એક બીટ છે. જો તમે JPEGs એક અનંત નંબર હોય, તમે એક અનંત લૂપ છે. જેથી, પણ, એક તદ્દન સામાન્ય કિસ્સો હશે. કે શું ક્ષિતિજ પર છે. 0 અમને પાછળ, ક્વિઝ. સમજો, મારા ઇમેઇલ દીઠ કે, અચૂક ત્યાં લોકો છે બંને તટસ્થ ખુશ સૉર્ટ કરો, અને ક્વિઝ આસપાસ ઉદાસી 0 સમય કોણ છે. કૃપા કરીને અને મને બહાર પહોંચે છે, માથા TFs, Zamyla, તમારી પોતાની ટીએફ નથી અથવા સીએએસ એક કે તમે જાણો છો જો તમે ચર્ચા વસ્તુઓ કેવી ગયા માંગો છો. જેથી માતા - પિતા પ્રભાવિત કરવા માટે અહીં ઓરડામાં, આ CS50 પુસ્તકાલય શું છે? ગુડ કામ. આ CS50 પુસ્તકાલય શું છે? યાહ? [વિદ્યાર્થી જવાબો, દુર્બોધ] >> ઠીક છે, સારુ. તેથી તે કોડ એક prewritten સમૂહ છે કે અમે તો, સ્ટાફ, લખ્યું હતું કે, અમે તમને પૂરી પાડે છે, માટે અમુક સામાન્ય કાર્યો પૂરા પાડે છે. સામગ્રી મને શબ્દમાળા મેળવવા ગમશે; મને પૂર્ણાંક વિચાર, જે કાર્યોને અંહિ યાદી થયેલ છે બધી. હવે શરૂ કરી રહ્યા છીએ, અમે ખરેખર આ તાલીમ વ્હીલ્સ લઇ બોલ શરૂ કરો. તેથી અમે દૂર તમે એક "શબ્દમાળા" લેવાની શરૂ જઈ રહ્યાં છો, જે, સ્મૃતિ, જે વાસ્તવિક માહિતી પ્રકાર માટે માત્ર એક પર્યાય હતો? ઘરનાં પરચૂરણ કામો *. જેથી માતા - પિતા માટે, તે કદાચ હતી - અને તે સારી છે, તેથી ઘરનાં પરચૂરણ કામો * અમે જોવા માટે શરૂ કરી શકશો સ્ક્રીન પર બધી વધુ આપણે શબ્દભંડોળ માંથી "શબ્દમાળા" દૂર કરવા માટે, ઓછામાં ઓછું જ્યારે તે વાસ્તવમાં કોડ લખવા માટે આવે છે. તેવી જ રીતે, અમે ખૂબ તરીકે આ વિધેયો કેટલાકનો ઉપયોગ કરીને બંધ થશે, કારણ કે અમારા કાર્યક્રમોનું વધુ વ્યવહારદક્ષ વિચાર જવું છે બદલે માત્ર કાર્યક્રમો કે જે પ્રોમ્પ્ટ ખીલેલું સાથે ત્યાં બેસવા લખો, વપરાશકર્તા માટે રાહ જોઈ રહ્યું સાઇન કંઈક લખો તમે બીજે ક્યાંકથી તમારી ઇનપુટ્સ મળશે. હમણાં પૂરતું, તમે તેમને સ્થાનિક હાર્ડ ડ્રાઇવ પર બિટ્સ શ્રેણીમાંથી મળશે. તમે તેના બદલે તેમને ભવિષ્યમાં મળશે નેટવર્ક જોડાણ છે, અમુક વેબસાઈટ ક્યાંક. તેથી પ્રથમ વખત આ સ્તર છાલ ચાલો, અને જે CS50 સાધન ખેંચવાનો અને આ CS50.h તરીકે ઓળખાતી ફાઈલ છે, કે જે તમે અઠવાડિયા માટે સહિત તીક્ષ્ણ હતા. દો પરંતુ ખરેખર શું આ અંદર છે. તેથી વાદળી માં ફાઇલ ટોચ માત્ર ટિપ્પણીઓ સંપૂર્ણ સમૂહ છે, વોરંટી માહિતી અને લાયસન્સ. આ એક સામાન્ય ફેરફાર જેવું છે સોફ્ટવેર, કારણ કે સોફ્ટવેર ઘણો આ દિવસોમાં છે જેને છે "ઓપન સોર્સ" જેનો અર્થ છે કે કોઈ વ્યક્તિ કોડ લખ્યું છે અને તે મુક્ત રીતે ઉપલબ્ધ કરવામાં, નહિં કે ખાલી સ્કોર અને ઉપયોગ કરવા માટે, પરંતુ ખરેખર વાંચવા અને બદલવા અને તમારું કામ સંકલિત. જેથી તમે શું ઉપયોગ કરી રહ્યો છું, ઓપન સોર્સ સોફ્ટવેર, જોકે ખૂબ જ નાના સ્વરૂપ છે. જો હું ટિપ્પણીઓ ભૂતકાળ સરકાવો, જોકે, અમે કેટલાક વધુ પરિચિત વસ્તુઓ જોવાનું શરૂ કરશો. તેથી અહીં ટોચ પર નોટિસ કે, CS50.h ફાઈલ હેડર ફાઈલો સંપૂર્ણ સમૂહ સમાવે છે. હવે, આ સૌથી અમે પહેલાં જોઈ છે, પરંતુ એક છે પરિચિત; આ જે અમે કરેલ છે, સંક્ષિપ્તમાં જોકે જોવા મળે છે, આમ અત્યાર સુધી? અરે વાહ, પ્રમાણભૂત લાઈબ્રેરીઓ. Stdlib.h malloc છે, તેથી એક વખત અમે ગતિશીલ મેમરી ફાળવણી વિશે વાત શરૂ કરી, જે અમે પાછા આગામી સપ્તાહ માટે પણ આવી પડશે, અમે તે ફાઈલ સહિત શરૂઆત કરી હતી. તે તારણ આપે છે કે bool અને સાચા અને ખોટા વાસ્તવમાં સી અસ્તિત્વમાં નથી, દીઠ સે, જ્યાં સુધી તમે આ ફાઇલને અહીં સમાવેશ થાય છે. તેથી અમે, અઠવાડિયા માટે, કરવામાં આવી પ્રમાણભૂત bool.h સહિત જેથી તમે એક bool, જે સાચું અથવા ખોટું. વિચારને ઉપયોગ કરી શકો છો આ વિના, તો તમે તેને નકલી ઓફ સૉર્ટ અને પૂર્ણાંક ઉપયોગ હશે અને માત્ર આપખુદ ધારે છે કે 0 ખોટું છે અને 1 સાચું છે. હવે, જો આપણે નીચે વધુ સ્ક્રોલ, અહીં શબ્દમાળા અમારી વ્યાખ્યા છે. તે તારણ, કારણ કે અમે પહેલાં જણાવ્યું હતું કે, કરી લીધી છે, કે જ્યાં આ * છે ખરેખર તો કોઈ વાંધો નથી. તમે પણ જગ્યા તમામ આસપાસ હોઈ શકે છે. અમે, આ સત્ર, આ આવ્યા છે તે પ્રોત્સાહન સ્પષ્ટ કરે છે કે જે * આ પ્રકાર સાથે કરી છે. પરંતુ ખ્યાલ, જેમ સામાન્ય, થોડું વધારે સામાન્ય હોય, તો તેને ત્યાં મૂકી છે પરંતુ વિધેયાત્મક રીતે તે જ વાત છે. પરંતુ હવે, જો આપણે નીચે વધુ વાંચો, ચાલો સકેં પર એક નજર GetInt લે છે, કારણ કે અમે તે કરવા માટે વપરાય છે, કદાચ બીજું કંઇ આ સત્ર પહેલાં. અને અહીં GetInt છે. આ શું છે? આ પ્રોટોટાઇપ છે. વારંવાર, અમે અમારી ની ટોચે પહોંચી અને અંતે પ્રોટોટાઇપ મૂકેલ છે કૈચ ફાઈલો. પરંતુ તમે પણ હેડર ફાઈલો, એચ. ફાઈલોમાં પ્રોટોટાઇપ મૂકી શકે છે, આ અહીં એક જેવી, કે જેથી જ્યારે તમે કેટલાક કાર્યો લખી કે જે તમે અન્ય લોકોને ઉપયોગ કરવાનો પ્રયત્ન કરવા માંગો છો, કે જે ચોક્કસ CS50 લાઇબ્રેરી સાથે કેસ છે, તમે માત્ર CS50.c કંઈક તમારા કાર્યો અમલમાં મૂકવા માટે, તમે પણ છે કે ફાઈલ ટોચ પર નથી પ્રોટોટાઇપ મૂકવા, પરંતુ એક હેડર ફાઈલ ટોચ પર, પછી તે હેડર ફાઈલ છે મિત્રો અને સહકર્મીઓ શું સમાવેશ થાય છે, તીક્ષ્ણ સાથે તેમના પોતાના કોડ માં સમાવેશ થાય છે. આ બધા સમય તેથી તમે આ પ્રોટોટાઇપ તમામ કરવામાં સહિત કર્યા છે અસરકારક રીતે તમારી ફાઈલ ટોચ પર છે, પરંતુ આ તીવ્ર રીતે પદ્ધતિ સમાવેશ થાય છે કે અનિવાર્યપણે નકલો અને pastes તમારા પોતાના આ ફાઇલ. હવે, અહીં કેટલીક એકદમ વિગતવાર દસ્તાવેજીકરણ છે. અમે ખૂબ ખૂબ માટે મંજૂર છે કે GetInt પૂર્ણાંક નોંધાયો ભર્યું છે, પરંતુ તે કેટલાક કિસ્સાઓમાં ખૂણે છે વળે અધિકાર? શું એ સંખ્યા છે કે રસ્તો ખૂબ મોટી છે જેમાં વપરાશકર્તા પ્રકારો જો? Quintillion એ, કે જે હમણાં જ પૂર્ણાંક ની અંદર ફિટ ન કરી શકે? અપેક્ષિત વર્તણૂક શું છે? વેલ, આદર્શ રીતે, તે ધારી છે. તેથી આ કિસ્સામાં, જો તમે વાસ્તવમાં સુંદર પ્રિન્ટ વાંચવા, તમે કે જો રેખા વાંચી શકાતી નથી, આ વળતર INT_MAX જોશો. અમે આ વિશે ક્યારેય વાત કરી, કર્યા છે, પરંતુ તેના કેપિટલાઈઝેશન પર આધારિત, તે શું કદાચ? તે સતત છે, તેથી તેમાં કેટલીક ખાસ સતત કે કદાચ જાહેર કરવામાં આવ્યું છે તે છે એક તે હેડર ફાઈલો છે કે જે ફાઈલ ઉચ્ચ અપ છે માં, અને INT_MAX કદાચ આશરે, જેમ 2 અબજ કંઈક છે. તે છે, કારણ કે અમે કોઈક કે જે કંઈક સૂચક જરૂર વિચાર ખોટું થયું, અમે, હા, અમારા નિકાલ અંતે 4 અબજ નંબરો છે, 2 અબજ સુધી નેગેટિવ 2 બિલિયન આપવાનું અથવા લો. વેલ, પ્રોગ્રામિંગ સામાન્ય છે શું છે તમે માત્ર એક તે નંબરો ચોરી. 0 કદાચ, કદાચ અબજ 2, કદાચ નકારાત્મક 2 અબજ. જેથી તમે તમારા એક શક્ય કિંમતો વિતાવે છે કે જેથી તમે વિશ્વને મોકલવું કરી શકો છો તે જો કંઈક ખોટું થાય, હું આ કિંમત સુપર મોટું આપશે. પરંતુ તમે વપરાશકર્તાને જેવા ભેદી કંઈક લખીને ન માંગતા "2, 3, 4 ..." નથી ખરેખર મોટી સંખ્યામાં છે, જ્યાં તમે સતત તરીકે બદલે સામાન્ય. તેથી ખરેખર, જો તમે ગુદા કરવામાં આવી રહી હતી, છેલ્લા થોડા અઠવાડિયા, ગમે ત્યારે, તમે GetInt કહી, તો તમે શરત જો સાથે કરવામાં આવી ચકાસણી કરીશું. INT_MAX માં વપરાશકર્તા પ્રકાર કર્યું, અથવા વધારે ચોક્કસ રીતે, GetInt વળતર INT_MAX હતી? કારણ કે જો તે કર્યું, કે જે વાસ્તવમાં એટલે તેઓ તેને ન લખો નહોતા; કંઈક આ કિસ્સામાં ખોટું થયું. તેથી આ એ છે જે સામાન્ય રીતે "સંત્રી" કિંમત છે, કે જે ફક્ત ખાસ અર્થ છે તરીકે ઓળખાય છે. વેલ, ચાલો હવે સી. ફાઈલો માટે બંધ છે. C ની ફાઈલ સાધન કેટલાક સમયથી અસ્તિત્વમાં છે, અને હકીકતમાં, આ સાધન તમારા માટે તે precompiled છે કે વસ્તુ માં અમે "પદાર્થ કોડ છે," કહેવાય છે પરંતુ તે માત્ર તમે નથી વાંધો જ્યાં તે છે, કારણ કે સિસ્ટમ જાણે નથી, આ કિસ્સામાં, જ્યાં તે છે, સાધન. દો પરંતુ નીચે હવે સરકાવવા માટે GetInt, અને જુઓ કે કેવી રીતે GetInt આ બધા સમય કાર્ય છે. અહીં અમે પહેલાં સમાન ટિપ્પણીઓ. દો મને ફક્ત કોડ ભાગ પર ઝૂમ, અને અમે GetInt માટે હોય શું નીચેના છે. તેને કોઈ ઇનપુટ લે છે અને તે પૂર્ણાંક આપે છે, જ્યારે (સત્ય) છે, તેથી અમે એક ઇરાદાપૂર્વકની અનંત લૂપ છે પરંતુ, કદાચ, અમે આ કોઈક ભંગ પડશે અથવા આ અંદર આવો. તેથી આપણે આ કેવી રીતે કામ કરે છે જુઓ. વેલ, અમે GetString ઉપયોગ કરી લાગે છે આ લૂપની, 166 અંદર આ પ્રથમ વાક્ય છે. આ હવે સારું આચરણ છે કારણ કે સંજોગો શું હેઠળ GetString આ ખાસ કીવર્ડ NULL, પરત કરી શકે છે? જો કશું ખોટું. શું ખોટું જાઓ ત્યારે તમે GetString કંઈક કહી શકે છે? યાહ? [વિદ્યાર્થી જવાબ, દુર્બોધ] >> યાહ. તેથી કદાચ malloc નિષ્ફળ જાય છે. હૂડ GetString નીચે ક્યાંક malloc કૉલ કરે છે, જે મેમરી ફાળવે છે, જે કોમ્પ્યુટર સ્ટોર કરવા દે છે અક્ષરો તમામ કીબોર્ડ માં વપરાશકર્તા પ્રકારો. ધારવું અને વપરાશકર્તા મફત સમય સંપૂર્ણ ઘણો હતો અને વધુ 2 અબજ અક્ષરો કરતાં દાખલા તરીકે, લખ્યો. કમ્પ્યુટર કરતા વધુ અક્ષરો પણ રેમ છે. વેલ, GetString માટે તમે તે દર્શાવવા કરવાનો પ્રયત્ન છે, પણ જો આ સુપર, સુપર અસાધારણ ખૂણા કેસ છે. તે કોઈક આ હેન્ડલ કરવાનો પ્રયત્ન હોય છે, અને તેથી GetString, જો અમે પાછા જાઓ અને તેના દસ્તાવેજો વાંચવા માટે, હકીકતમાં નથી, NULL આવો. હવે જો GetString NULL પરત દ્વારા કરવામાં નિષ્ફળ જાય, GetInt નિષ્ફળ રહ્યું છે INT_MAX એક સંત્રી તરીકે જ પરત દ્વારા. આ ફક્ત માનવ પ્રણાલિકા છે. આ માત્ર રસ્તો તમને આ ખબર હોત કિસ્સો છે દસ્તાવેજીકરણ વાંચન દ્વારા છે. તેથી આપણે જ્યાં પૂર્ણાંક ખરેખર છે GotInt સુધી સરકાવો. તેથી જો હું થોડુ વધુ સ્ક્રોલ, 170 લીટી માં અમે આ રેખાઓ ઉપર કોઈ ટિપ્પણી છે. તેથી અમે 172 માં જાહેર, n એ પૂર્ણાંક છે અને કોલસો બનાવો કેચ, અને પછી આ નવા કાર્ય જે તમને કેટલાક પહેલાં સમગ્ર ગયા છે, પરંતુ sscanf. આ શબ્દમાળા સ્કેન એફ માટે વપરાય છે. બીજા શબ્દોમાં કહીએ તો, મને શબ્દમાળા આપે છે અને હું તેને રસ માહિતી ટુકડાઓ માટે સ્કેન કરશે. જેથી શું અર્થ છે? વેલ ધારવું, કે હું કીબોર્ડ પર, શાબ્દિક, 2 1 3 લખો અને પછી દાખલ નહીં. 1 2 3 માહિતી પ્રકાર જ્યારે GetString દ્વારા પરત શું છે? તે દેખીતી રીતે શબ્દમાળા છે અધિકાર? હું એક શબ્દમાળા મળ્યું, જેથી 1 2 3 ખરેખર "1 2 3" આ \ તે ઓવરને અંતે 0 સાથે. કે પૂર્ણાંક નથી. કે જે નંબર નથી. તે નંબર જેવી લાગે છે, પરંતુ તે ખરેખર નથી. તેથી GetInt શું છે? તે કે ડાબેથી જમણે શબ્દમાળા સ્કેન ધરાવે છે, 1 2 3 0 \, અને કોઈક તે વાસ્તવિક પૂર્ણાંક રૂપાંતરિત કરો. હવે, તમે આકૃતિ આ કેવી રીતે કરવું શકે છે. જો તમે 2 pset પાછા લાગે, તો તમે કદાચ થોડો આરામદાયક મળ્યું સીઝર અથવા vigenere સાથે જેથી તમે ઉપર શબ્દમાળા ફરી વળવું કરી શકો છો, તમે અક્ષરો પિક સાથે ints કન્વર્ટ કરી શકો છો. જે કામ સંપૂર્ણ ઘણું. Sscanf જેમ કાર્ય કરે છે જે તમારા માટે કરે છે જે કેમ નથી કહી? તેથી sscanf આ વાક્ય કહેવાય કેસ છે, કે જે શબ્દમાળા છે એક દલીલ, અપેક્ષા રાખી છે. પછી તમે અવતરણ માં સ્પષ્ટ, ખૂબ printf માટે સમાન, તમે શું આ શબ્દમાળાને જુઓ અપેક્ષા છે? હું અહીં કહી રહ્યો છું શું છે, મને અક્ષાંશ નંબર અને કદાચ એક અક્ષર જુઓ અપેક્ષા. અને અમે શા માટે આ માત્ર એક ક્ષણ માં કેસ છે જોશો. તે તારણ આપે છે કે આ સંકેત હવે સામગ્રી યાદ અપાવે અમે ફક્ત પહેલા એક અઠવાડિયા વિશે વાત શરૂ કરી. શું છે અને n અને કેચ એન્ડ અમને માટે અહીં કરી? [વિદ્યાર્થી જવાબો, દુર્બોધ] >> યાહ. તે મને અને સી એન સરનામું સરનામા આપ્યા છે. હવે, કે જે મહત્વપૂર્ણ શા માટે છે? સારું, તમે જાણો છો કે સી માં વિધેયો સાથે તમે હંમેશા અથવા કોઈ કિંમત કિંમત પરત ફરી શકે છે. તમે પૂર્ણાંક, શબ્દમાળા, એક ફ્લોટ, ચાર રચે છે, ગમે પાછા આવી શકો છો. અથવા તમે રદબાતલ પરત શકો છો, પરંતુ માત્ર 1 વસ્તુ વધુમાં પાછા આવી શકો છો. પરંતુ, અહીં આપણે sscanf મને પાછા કદાચ પૂર્ણાંક, એક અક્ષાંશ નંબર માંગો છો, અને પણ ચાર રચે છે, અને હું એક ક્ષણ માં શા માટે ઘરનાં પરચૂરણ કામો સમજાવવું પડશે. તેથી તમે અસરકારક રીતે એફ 2 વસ્તુઓ પરત કરવા માંગો છો, તે સી માં ફક્ત શક્ય નથી તેથી કે જે તમને આસપાસ 2 સરનામાંઓ માં પસાર કરીને કામ કરી શકે છે, કારણ કે વહેલી તકે તમે એક કાર્ય 2 સરનામાં હાથથી, કે જે કાર્ય તેમની સાથે કરી શકો છો? તે પેલા સરનામાં પર લખી શકો છો. તમે * કામગીરી ઉપયોગ કરે છે અને તે દરેક સરનામાંને "ત્યાં જાઓ" કરી શકે છે. આ ગુપ્ત પદ્ધતિ જેવું છે, પરંતુ ખૂબ વેરિયેબલ્સ કિંમતો બદલવા માટે સામાન્ય આ 2 કેસ માં ફક્ત 1 સ્થળ કરતાં વધુ છે. હવે, હું to1 == માટે ચકાસે છું, અને પછી n પરત જો કે, વાસ્તવમાં નથી, સાચી માટે મૂલ્યાંકન નોટિસ. તેથી શું થઈ રહ્યું છે? વેલ, ટેકનીકલી, બધા અમે ખરેખર GetInt માં થાય છે કરવા માંગો છો આ છે. અમે પાર્સ, તેથી વાત કરવા માંગો છો; અમે શબ્દમાળા વાંચી માંગો છો "1 2 3" અને લાગે છે કે ત્યાં એક નંબર હોય, અમે sscanf કહેવાની રહ્યા છો શું મારા માટે આ ચલ n એ છે કે નંબર, 2 3 1, મૂકી છે. શા માટે, તે પછી, હું આ જ રીતે મળી? પણ જણાવ્યું હતું કે, sscanf, તમે પણ એક અક્ષર અહીં વિચાર શકે ભૂમિકા શું છે. [વિદ્યાર્થી બોલવા, દુર્બોધ] જવાબ નથી >> - એક દશાંશ બિંદુ કામ કરી શકે છે. ચાલો માને છે કે એક ક્ષણ માટે આવે છે. બીજું શું? [વિદ્યાર્થી, દુર્બોધ] તેથી >>, સારા વિચાર, તે NULL પાત્ર હોઈ શકે છે. આ કેસમાં ખરેખર નથી. યાહ? [વિદ્યાર્થી, દુર્બોધ] >> ASCII. અથવા દો, મને પણ વધુ સામાન્ય રીતે. આ% ત્યાં કો ભૂલ ચકાસણી માટે જ છે. અમે ત્યાં ન કરવા માંગો છો સંખ્યા પછી પાત્ર નથી, પરંતુ આ મને શું કરવા માટે પરવાનગી આપે શું નીચેના છે: તે તારણ આપે છે કે sscanf, n અને c કિંમતો આ અહીં ઉદાહરણમાં, સ્ટોર ઉપરાંત, તે શું છે પણ એ નથી કે તે ચલો સંખ્યા આપે છે તે ચકાસણી કિંમતો મૂકી તેથી જો તમે માત્ર 1 2 3 લખો, પછી માત્ર% d સાથે મેળ રહ્યું છે અને માત્ર n 1 2 3 જેવી કિંમત સાથે સંગ્રહિત નહીં અને કંઈ કેચ મૂકવા નહીં; કૈચ એક કચરો કિંમત રહે છે, તેથી વાત કરવા માટે. કચરો કારણ કે તેમાં કેટલીક કિંમત તરીકે ક્યારેય આરંભ છે. જેથી કિસ્સામાં, sscanf 1 આપે છે, કારણ કે હું એક તે પોઇંટરો ઓફ રચાયેલ, , કે જે કિસ્સામાં મહાન. હું પૂર્ણાંક હોય છે, તેથી હું રેખા મુક્ત કરવા માટે મેમરી મુક્ત GetString કે વાસ્તવમાં ફાળવવામાં અને પછી હું n આવો. બાકી, જો તમે ક્યારેય વિસ્મય જ્યાં કે ફરી પ્રયાસ નિવેદન પરથી આવે છે, અહીં આવે છે. જો તેનાથી વિપરિત, હું 2 3 1 foo માં લખો ફક્ત ટેક્સ્ટ કેટલાક રેન્ડમ ક્રમ, sscanf જોવા માટે રહ્યું છે, ooh, નંબર, ooh, નંબર, ooh, નંબર, ooh - એફ. અને તે n માંના 1 2 3 મૂકી રહ્યું છે. તે કેચ માં એફ મૂકી, અને પછી 2 પરત ચાલી રહ્યું છે. તેથી અમે હોય છે, ફક્ત scanf વર્તન મૂળ વ્યાખ્યા વાપરી રહ્યા હોય, ખૂબ જ સરળ રીત છે -, પ્રથમ નજરમાં જટિલ છે, પરંતુ દિવસ ઓવરને અંતે, કહેતા એકદમ સરળ પદ્ધતિ, પૂર્ણાંક ત્યાં છે, અને તેથી જો હોય છે, તે જ વસ્તુ કે હું મળ્યું? અને સફેદ અહીં જગ્યા ઇરાદાપૂર્વકની છે. જો તમે sscanf માટે દસ્તાવેજીકરણ વાંચો, તે છે કે જે તમને જો તમે શરૂઆત અથવા ઓવરને અંતે સફેદ જગ્યા એક ટુકડો સમાવેશ થાય છે, તે કહે છે sscanf ખૂબ વપરાશકર્તા માટે પરવાનગી આપે છે, કારણ ગમે તે માટે કરશે, 2 3 1 spacebar ફટકો છે, અને તે કાયદેસર હશે. તે વપરાશકર્તા નથી કિકિયારી માત્ર કારણ કે તેઓ શરૂઆતમાં અથવા અંતે spacebar ફટકો પડશે, જે થોડી વપરાશકર્તા મૈત્રીપૂર્ણ વધુ છે. કોઈપણ પ્રશ્નો હોય, તો પછી, GetInts પર? યાહ? [વિદ્યાર્થી પ્રશ્ન, દુર્બોધ] >> ગુડ પ્રશ્ન. જો તમે માત્ર એક કોલસો બનાવો માં લખ્યો, એફ સફળતા, અને જેમ દાખલ અત્યાર 1 2 3 લખીને વિના; તમે શું વિચારો છો કોડ આ વાક્ય વર્તણૂક પછી હશે? તેથી sscanf કે ખૂબ આવરી શકે છે, કારણ કે તે કિસ્સામાં, તે n અથવા કેચ ભરી નથી ચાલી રહ્યું છે; તે જગ્યાએ 0 પાછા જવાનું છે. જે કિસ્સામાં, હું પણ છે કે જે પરિસ્થિતિ મોહક છું, કારણ કે અપેક્ષિત કિંમત હું માંગો છો 1 છે. હું માત્ર 1 માંગો છો, અને ફક્ત 1 વસ્તુ ભરી શકાય છે. પ્રશ્ન સારું. અન્ય? બધા હક છે, તેથી દો અહીં ના બધા વિધેયોને પસાર છે નથી, પરંતુ એક કે જે હોઇ શકે છે, કદાચ બાકી રસ, લાગે છે છે GetString કારણ કે તે તારણ આપે છે કે GetFloat, GetInt, GetDouble, બધા વાંસડા વડે એવી હોડી ચલાવવી તેમના GetString માટે વિધેય ઘણો GetLongLong. તેથી આપણે કેવી રીતે તેઓ અહીં અમલમાં મૂકાયેલ છે પર એક નજર. આ એક થોડો જટિલ લાગે છે પરંતુ તે જ ફંડામેન્ટલ્સ ઉપયોગ કરે છે કે અમે છેલ્લા અઠવાડિયે વાત શરૂ કરી. તેથી GetString માં, જે રદબાતલ દીઠ કોઇ દલીલ અહીં લે છે, અને તે શબ્દમાળા આપે છે; જેથી હું એક બફર તરીકે ઓળખાય શબ્દમાળા જાહેર છું. હું ખરેખર છે કે શું હજી માટે ઉપયોગ કરી રહ્યું છે તે ખબર નથી, પરંતુ અમે જોશો. ક્ષમતા જેવા દેખાવની મૂળભૂત 0 છે, છે; ખાતરી જ્યાં આ રહ્યું છે તદ્દન. ખાતરી કરો n શું હજી માટે ઉપયોગ કરી રહ્યું છે તે નથી. પરંતુ હવે તે થોડું વધુ રસપ્રદ દર્શાશે 243 લીટી તેથી, અમે પૂર્ણાંક કેચ, આ મૂર્ખ વિગતવાર જેવું છે જાહેર. એક કોલસો બનાવો 8 બીટ્સ છે, અને 8 બીટ્સ કેટલા અલગ અલગ કિંમતો સ્ટોર કરી શકો છો? 256. સમસ્યા એ છે કે, જો તમે 256 વિવિધ ASCII અક્ષરો માંગો છો, જે ત્યાં છે, જો તમે પાછા લાગે છે, અને આ માટે યાદ કંઈક નથી. પરંતુ જો તમે કે મોટા ASCII ચાર્ટ પર પાછા લાગે છે અમે અઠવાડિયા પહેલા હતી, ત્યાં તે કિસ્સામાં, 128 અથવા 256 ASCII અક્ષરો હતા. અમે 0 ની તમામ નમૂનાઓ અને 1 અપ છે વપરાય છે. કે સમસ્યા છે જો તમે કોઈ ભૂલ શોધવા કરવાનો પ્રયત્ન કરવા માંગો છો. જો તમે પહેલાથી જ તમારી અક્ષરો માટે કરી રહ્યાં છો 256 કિંમતો મદદથી કારણ કે, તમે ખરેખર આગળ યોજના ઘડી ન હતી, કારણ કે હવે તમે કહેતા કોઈ રીત નથી, "આ એક વંચાય અક્ષર નથી; આ અમુક ભૂલભરેલા સંદેશ છે." તેથી વિશ્વ કરે છે શું છે તેઓ આગામી સૌથી મોટી કિંમત ઉપયોગ, પૂર્ણાંક કંઈક છે કે જેથી તમે બીટ્સ એક ઉન્મત્ત નંબર હોય, 32 4 અબજ શક્ય કિંમતો માટે, જેથી તમે ખાલી અંત મદદથી કરી શકો છો, અનિવાર્યપણે, 257 તેમાંના, 1 જે ભૂલ તરીકે અમુક ખાસ અર્થ હોય છે. તેથી આપણે આ કેવી રીતે કામ કરે છે જુઓ. 246 લીટી માં, હું આ મોટા જ્યારે લૂપ છે કે fgetc કૉલ કરે છે; એફ અર્થ ફાઇલ, getc અને પછી stdin ની. બહાર ફેંકે છે આ માત્ર કહેતા વધુ ચોક્કસ માર્ગ છે "કીબોર્ડ તરફથી ઇનપુટ વાંચો." માનક ઇનપુટ અર્થ કીબોર્ડ, પ્રમાણભૂત આઉટપુટ સ્ક્રીન અર્થ થાય છે, અને પ્રમાણભૂત ભૂલ છે, કે જે અમે 4 pset માં જોશો, સ્ક્રિન અર્થ થાય છે, પરંતુ સ્ક્રીન એક ખાસ ભાગ કે જેથી તે ન સંકલિત છે ખરેખર ઉત્પાદન કે તમે છાપવાનો ઈરાદો સાથે; પણ ભવિષ્યમાં પર વધુ. તેથી fgetc માત્ર અર્થ એ થાય કે કીબોર્ડ એક અક્ષર વાંચી, અને તે સ્ટોર જ્યાં? તે કેચ માં સ્ટોર કરો, અને પછી તપાસો, જેથી હું માત્ર કેટલાક બુલિયન conjunctions છું અહીં વાપરી રહ્યા હોય, તપાસો કે તે \ સમાન n એ, જેથી વપરાશકર્તા દાખલ ફટકારી છે નથી. અમે તે બિંદુ, લૂપની ઓવરને અંતે રોકવા માંગો છો, અને અમે પણ તપાસો કરવા માંગો છો માટે ખાસ સતત, EOF છે, કે જે જો તમને ખબર હોય અથવા ધારી - તે શું માટે ઊભા કરે છે? ફાઇલ અંત થાય છે. તેથી આ વાહિયાત પ્રકારની હોય છે, કારણ કે જો હું કીબોર્ડ લખીને છું, ત્યાં ખરેખર કોઈ આ સામેલ ફાઈલ છે, પરંતુ આ માત્ર સામાન્ય અર્થ ઉપયોગ ગાળાની સૉર્ટ છે કે બીજું કંઇ તે માનવ આંગળીઓમાંથી આવી રહ્યું છે. EOF. ફાઇલ અંત થાય છે. એક અલગ તરીકે, જો તમે ક્યારેય તમારા કીબોર્ડ પર કર્યું છે અંકુશ ડી દબાવો, તમે હજુ સુધી કે નહિ; તમે નિયંત્રણ કો હિટ થઈ છે. પરંતુ નિયંત્રણ ડી આ ખાસ સતત કહેવાય EOF મોકલે છે. તેથી હવે અમે માત્ર કેટલાક ગતિશીલ મેમરી ફાળવણી છે. તેથી જો n + 1 ક્ષમતા> છે, હવે હું n એ સમજાવવું પડશે. n એ માત્ર કેટલા બાઇટ્સ એ બફર છે હાલમાં, શબ્દમાળા કે જે તમે હાલમાં વપરાશકર્તા હોવ મકાન. જો તમે તમારા બફર વધુ અક્ષરો હોવા કરતાં તમે બફર માં ક્ષમતા છે, તર્ક, અમે તો પછી જરૂર શું વધુ ક્ષમતા ફાળવી છે. હું ઉપર અંકગણિત કેટલાક અહીં મલાઈહીન જાઉં છું અને આ કાર્ય પર જ ધ્યાન કેન્દ્રિત અહીં. તમે જાણો છો malloc શું છે, અથવા ઓછામાં ઓછા સામાન્ય રીતે પરિચિત. એક અનુમાન realloc શું કરે છે લો. [વિદ્યાર્થી જવાબ, દુર્બોધ] >> યાહ. અને તે તદ્દન મેમરી નથી ઉમેરીને છે, તે નીચે પ્રમાણે મેમરી reallocates: જો હજી પણ શબ્દમાળા ઓવરને અંતે રૂમ છે કે જે તમને મેમરી વધુ આપી છે કરતાં તે મૂળ તમને, તો પછી તમે તે વધારાના મેમરી મળશે. જેથી તમે માત્ર શબ્દમાળાઓ અક્ષરો પાછા મૂકવા શકે છે માટે બેકઅપ બેકઅપ બેક. પરંતુ જો કે આ કેસ નથી, કારણ કે તમે ખૂબ લાંબો સમય waited અને રેન્ડમ કંઈક મળી મેમરીમાં ત્યાં plopped, પરંતુ વધારે છે અહીં નીચે મેમરી, કે ઠીક છે. Realloc માટે તમે બધી ભારે પ્રશિક્ષણ કરી રહ્યું છે, શબ્દમાળા તમે વાંચ્યા છે તેથી અહીં દૂર ખસેડવા માટે, તે મૂકી નીચે ત્યાં અને પછી તમે તે સમયે કેટલાક વધુ રનવે આપે છે. જેથી હાથ પ્રવાહ સાથે દો, મને કહે છે કે શું GetString કરી છે છે તે એક નાના બફર, કદાચ 1 એકલ અક્ષર સાથે શરૂ છે, અને 2 અક્ષરો વપરાશકર્તા પ્રકારો જો, GetString થાય realloc ફોન છે અને કહે છે, 'Ooh, 1 અક્ષર પૂરતા ન હતા. મને 2 અક્ષરો આપો. ' પછી જો તમે લૂપની તર્ક દ્વારા વાંચી, તે કહે છે, 'Ooh, આ 3 અક્ષરો ટાઇપ વપરાશકર્તા બનશે. મને આપો હવે 2 પરંતુ 4 અક્ષરો, પછી મને 8 આપો, પછી મને 16 અને 32 આપે છે. ' હકીકત એ છે કે હું ક્ષમતા દરેક સમય બમણો છું અર્થ એ થાય કે બફર ધીમે ધીમે વિકસતું નથી જઈ રહ્યા છે. તે સુપર ઝડપી વૃદ્ધિ પામે ચાલી રહ્યું છે, અને તે શું છે તે લાભ હોઇ શકે? હું બફર માપ શા બમણી છું, તેમ છતાં વપરાશકર્તા ફક્ત 1 કીબોર્ડ માંથી વધારાના પાત્ર કરવાની જરૂર પડી શકે? [વિદ્યાર્થી જવાબ, દુર્બોધ]. >> શું કે શું છે? બરાબર. તમે તેને ઘણી વાર વધવા નથી. અને આ એક માત્ર પ્રકારની છે - you're તમારા બેટ્સ અહીં હેજિંગ. આ વિચાર એ હતો કે તમે ખૂબ realloc કહી ન માગો કારણ કે તે ધીમું હોઈ શકે છે. કોઈપણ સમયે તમે મેમરી માટે ઓપરેટિંગ સિસ્ટમ પૂછો, જેમ તમે જલદી જોઈ શકશો ભવિષ્યના સમસ્યા સમૂહ, તે થોડો સમય લે છે. સમય કે રકમ ઘટાડીને, જો તમે અમુક જગ્યા બગાડ કરી રહ્યાં છીએ તેથી, માટે સારી વાત હોય શકે છે. પરંતુ જો આપણે GetString અંતિમ ભાગ મારફતે અહીં વાંચો, અને ફરી, દરેક એક વાક્ય અહીં સમજવા જેથી મહત્વપૂર્ણ આજે નથી. નોટિસ પણ છે કે તે આખરે malloc ફરીથી કહે છે, અને તે ફાળવે છે બરાબર ઘણા બાઇટ્સ તરીકે તે શબ્દમાળા માટે જરૂર છે અને પછી મફત ફોન દ્વારા દૂર ફેંકી દે છે, જે વધુ પડતી મોટી બફર, જો તે ખરેખર ઘણી વાર બમણી મળ્યો છે. ટૂંકમાં, કે કેવી રીતે GetString આ બધા સમય કાર્ય છે. બધા તેને એક સમયે એક અક્ષર વંચાય છે ફરી અને ફરી ફરી અને દર વખતે તે કેટલીક વધારાની મેમરી જરૂર છે, તેને માટે realloc ફોન દ્વારા ઓપરેટિંગ સિસ્ટમ પૂછે છે. કોઈપણ પ્રશ્ન છે? અધિકાર છે. હુમલો. હવે અમે પોઇંટરો સમજવા, અથવા ઓછામાં ઓછું પોઇન્ટર સાથે વધુને વધુ પરિચિત હોય છે, ચાલો ધ્યાનમાં કેવી રીતે સમગ્ર વિશ્વમાં તૂટી શરૂ થાય છે જો તમે તદ્દન વિરોધી વપરાશકર્તાઓ સામે નથી કોઈ રન નોંધાયો નહીં નથી, જે લોકો તમારી સિસ્ટમ માં હેક કરવાનો પ્રયાસ કરવામાં આવે છે. જે લોકો માટે કેટલીક નોંધણી કોડ circumventing દ્વારા તમારા સોફ્ટવેર ચોરી કરવાનો પ્રયાસ કરી રહ્યા છે કે તેઓ અન્યથા સાઇન લખો હોય શકે છે આ ઉદાહરણમાં પર એક નજર અહીં લો, જે ફક્ત સી કોડ છે કે તળિયે મુખ્ય કાર્ય છે, કે જે કાર્ય foo કહે છે, અને તે શું foo માટે પસાર થાય છે? એક દલીલ [વિદ્યાર્થી]. >> બનાવ્યો દલીલ. તેથી argv [1] છે, કે જે પ્રથમ શબ્દ વપરાશકર્તા ટાઇપ અર્થ થાય છે a.out અથવા જે પછી આદેશ વાક્ય પર કાર્યક્રમ તરીકે ઓળખાય છે. Foo તેથી, ટોચ પર, ચાર રચે છે * લે છે, પરંતુ ઘરનાં પરચૂરણ કામો * ફક્ત શું છે? સ્ટ્રિંગ. તેમાં નવા કશું અહીં છે, અને કે જેઓ શબ્દમાળા આપખુદ બાર છે કહેવાય રહ્યું છે. આ અહીં લીટી માં, ચાર કેચ [12], અર્ધ તકનીકી ઇંગલિશ જેવું માં, આ લીટી શું કરે છે? અરે -? અક્ષરો. મને 12 અક્ષરો ઝાકઝમાળ આપો. તેથી અમે એક બફર આ કૉલ શકે છે. તે ટેકનિકલી કેચ કહેવાય છે, પરંતુ પ્રોગ્રામિંગ એક બફર માત્ર જગ્યા સમૂહ છે કે જે તમને કેટલીક સામગ્રી સાઇન મૂકી શકો છો એનો અર્થ એ થાય પછી છેલ્લે memcpy, અમે પહેલાં ઉપયોગ કર્યો છે. પરંતુ તમે કદાચ ધારી તે શું કરે છે કરી શકો છો. તે મેમરી નકલ કરે છે. તે શું કરે છે? વેલ, તે દેખીતી રીતે બાધ નકલ કરે છે, તેના ઇનપુટ કો માં, પરંતુ માત્ર અપ બાર લંબાઈ છે. પરંતુ અહીં એક ભૂલ છે. ઠીક છે, તેથી અમે તકનીકી ખરેખર strlen કરવું (બાર) કરીશું એક્સ (કોલસો) sizeof, તે સાચું છે. પરંતુ ખરાબ અહીં કિસ્સામાં, ચાલો કે that's ધારે છે - તેથી, ઠીક છે. તો પછી ત્યાં 2 ભૂલો છે. તેથી (કોલસો) sizeof, બધા અધિકાર, ચાલો આ થોડું વિશાળ બનાવે છે. તેથી હવે ત્યાં હજી પણ ભૂલ, કે જે શું છે શું છે? [વિદ્યાર્થી જવાબ, દુર્બોધ] શું >> તપાસ? ઠીક છે, તેથી અમે ચકાસણી થવી જોઈએ NULL માટે, કારણ કે ખરાબ વસ્તુઓ થાય છે જ્યારે તમારું નિર્દેશક NULL છે, કારણ કે તમે અંત ત્યાં જઈ, શકે અને તમે ક્યારેય નહીં કરી શકે નલ જઈને જોઈએ તે * ઓપરેટર સાથે dereferencing દ્વારા. જેથી સારી છે, અને બીજું શું આપણે કરી રહ્યા છે? તાર્કિક રીતે ત્યાં ભૂલ અહીં પણ છે. [વિદ્યાર્થી જવાબ, દુર્બોધ] >> તેથી જો argc ≥ 2 તપાસો? ઠીક છે, જેથી આ કાર્યક્રમમાં 3 ભૂલો અહીં છે. અમે જો વપરાશકર્તા ખરેખર [1] argv સારું, માં કંઈપણ માં ટાઇપ નથી ચકાસણી કરી રહ્યા છીએ. તેથી ત્રીજા ભૂલ શું છે? યાહ? [વિદ્યાર્થી જવાબ, દુર્બોધ] ગુડ. >> તેથી અમે એક દૃશ્ય ચકાસાયેલ. અમે સર્વથા ચકાસાયેલ નથી વધુ મેમરી નકલ નથી કરતાં બાર લંબાઈ કરતાં વધી જશે. તેથી શબ્દમાળા જો માં લખ્યો વપરાશકર્તા 10 અક્ષરો લાંબો છે, આ કહેતા છે, 'માત્ર 10 અક્ષરો નકલ કરો.' અને તે ઠીક છે, પરંતુ જો આ પ્રોમ્પ્ટ પર એક શબ્દ માં લખ્યો વપરાશકર્તા એક 20 અક્ષર શબ્દ છે; આ છે, પટ્ટીમાંથી શું માં નકલ 20 અક્ષરો કહેતા? કૈચ, અન્યથા અમારા બફર તરીકે ઓળખાય છે, જેનો અર્થ છે તમે હમણાં જ માહિતી લખ્યું હતું 8 બાઇટ સ્થળો કે જે તમે પોતાની ન કરવું, અને તમે તેમને સૂઝ કે તમે ફાળવવામાં તેમને ક્યારેય નહીં માલિકી નથી. તેથી આ એ છે જે સામાન્ય રીતે બફર ઓવરફ્લો હુમલા તરીકે ઓળખાય છે, અથવા બફર રોળાઈ હુમલો, અર્થમાં અને તે હુમલો કે જો વપરાશકર્તાને અથવા કાર્યક્રમ છે કે જે તમારા કાર્ય ફોન છે આ દ્વેષપૂર્વક કરી છે, શું ખરેખર આગામી તદ્દન ખરાબ હોઇ શકે છે બને છે. ચાલો આ ચિત્ર પર એક નજર અહીં લે છે. આ ચિત્ર મેમરી તમારા સ્ટેક રજૂ કરે છે. યાદ છે અને તે દરેક સમયે તમે એક કાર્ય કહી, તમે સ્ટેક પર આ થોડો ફ્રેમ વિચાર અને અન્ય પછી અને પછી બીજા અને પછી બીજા. અને આમ જ્યાં સુધી આપણે માત્ર પ્રકારની કરેલા આ લંબચોરસ તરીકે દૂર શૂન્યમનસ્ક ક્યાં તો બોર્ડ પર અથવા અહીં સ્ક્રીન પર. પરંતુ જો આપણે એક તે ચોરસ આકારની પર ઝૂમ, જ્યારે તમે કાર્ય foo કહી, તે તારણ કે સ્ટેક પર વધુ છે કે ફ્રેમ અને તે લંબચોરસ ની અંદર કરતાં માત્ર એક્સ અને વાય અને a અને b, જેમ કે અમારી સ્વેપ વિશે વાત ન હતી. તે તારણ કે ત્યાં અમુક નીચી કક્ષાની વિગતો છે, તેમની વચ્ચે સરનામા આવો. તેથી તે તારણ જ્યારે મુખ્ય foo કહે છે, મુખ્ય foo જાણ છે ની મુખ્ય સરનામા શું કમ્પ્યુટરની મેમરી છે. અન્યથા, કારણ તરીકે foo જલદી આ અહીં કિસ્સામાં ચલાવી કરવામાં આવે છે, એકવાર તમે foo ઓવરને અંતે આ બંધ સર્પાકાર તાણવું પહોંચે છે, કેવી રીતે હેક foo જ્યાં કાર્યક્રમ નિયંત્રણ પર જાઓ માનવામાં આવે છે ખબર નથી? તે તારણ કે જે પ્રશ્નનો જવાબ છે કે લાલ અહીં લંબચોરસ છે. આ એક નિર્દેશક રજૂ કરે છે, અને તે કમ્પ્યુટર પર છે સંગ્રહવા માટે, કામચલાઉ, સ્ટેક કહેવાતા પર મુખ્ય ના જેથી તરીકે foo જલદી સરનામા ચલાવવા કરવામાં આવે છે, કમ્પ્યુટર જ્યાં અને મુખ્ય માં લીટી શું પાછળ જવા માટે જાણે છે. સાચવેલા ફ્રેમ નિર્દેશક આ જ સંબંધિત છે. ચાર * અહીં બાર શું પ્રતિનિધિત્વ? ઠીક છે, હવે આ વાદળી સેગમેન્ટમાં અહીં માતાનો foo ફ્રેમ હોય છે, બાધ શું છે? ઠીક છે, જેથી બાર ફક્ત foo કામ કરવા માટે દલીલ છે. તેથી હવે અમે પરિચિત ચિત્ર પર પાછા આવ્યા. ત્યાં વધુ અને સ્ક્રીન પર સામગ્રી વધુ વિક્ષેપોમાં છે પરંતુ આ આછો વાદળી સેગમેન્ટ છે, આપણે શું સ્વેપ કંઈક માટે કરેલા chalkboard પર રેખાંકન. કે foo અંતર્ગત ફ્રેમ અને તેને માત્ર એક જ વસ્તુ અધિકાર હવે બાર છે, જે આ પરિમાણ છે. પરંતુ બીજું શું સ્ટેક આ અહીં કોડ અનુસાર, હોવું જોઈએ? ચાર કો. [12] તેથી અમે પણ મેમરી 12 ચોરસ જોઈ શકવા જોઈએ, એક કેચ કહેવાય ચલ માટે ફાળવવામાં આવે છે. અને ખરેખર અમે સ્ક્રીન પર નથી. એકદમ ટોચ છે કૈચ પછી, અને આ રેખાકૃતિ લેખક [0] નહોતી સંતાપ પરંતુ વર્ગની તમામ ચિત્રકામ ત્યાં ખરેખર છે 12 ​​ત્યાં કારણ કે જો તમે નીચે જમણા ખૂણે જુઓ, કો [11], જો તમે 0 થી ગણતરી, 12 જેવી બાઇટ્સ છે. પરંતુ અહીં સમસ્યા છે: દિશામાં જેમાં કેચ વધતી જાય છે? નીચે ટોચના સૉર્ટ કરો, અધિકાર? જો તે ટોચ પર શરૂ થાય છે અને નીચે સુધી વિકાસ પામે છે, નથી નજર નથી જેવી અમે જાતને ખૂબ રનવે બાકી અહીં બધા છે. અમે પ્રકારની એક ખૂણામાં આવી છે જાતને પેઇન્ટિંગ, અને તે કેચ [11] બાર છે, કે જે સ્ટેક ફ્રેમ નિર્દેશક સામે અધિકાર છે સામે અધિકાર છે, જે પરત સરનામા સામે અધિકાર છે; ત્યાં વધુ જગ્યા નથી. તેથી સૂચિતાર્થ શું છે, તે પછી, જો તમે સ્ક્રૂ, અને તમે એક બફર 12-બાઇટ માં 20 બાઇટ્સ reading પ્રયાસ? તે 8 વધારાના બાઇટ્સ પર જાઓ જ્યાં જવું છે? બાકીનું બધું અંદર છે, કે જે અમુક મહત્વપૂર્ણ સુપર છે. અને સૌથી મહત્વની વસ્તુ, સંભવિત, લાલ બોક્સ ત્યાં છે, વળતર સરનામું. કારણ કે ધારો કે તમે ક્યાં તો અકસ્માતે કે adversarially છે તે 4 બાઇટ્સ, કે નિર્દેશક સરનામા પર ફરીથી લખી, માત્ર કચરો છે, પરંતુ એ સંખ્યા છે કે મેમરી એક વાસ્તવિક સરનામા પ્રતિનિધિત્વ બને તે નથી? આ implicaiton શું તાર્કિક રીતે? [વિદ્યાર્થી જવાબો, દુર્બોધ] ચોક્કસ. >> જ્યારે foo આપે છે અને હિટ સર્પાકાર તાણવું કે, આ કાર્યક્રમ માટે મુખ્ય પરત ન આગળ વધવું રહ્યું છે, તે સરનામું છે કે જે લાલ બોક્સમાં છે પાછા જવાનું છે. હવે, circumventing સોફ્ટવેર રજીસ્ટ્રેશન કિસ્સામાં, શું સરનામા માટે કરવામાં આવી રહી છે ફર્યા કાર્ય છે કે જે સામાન્ય પછી તમે સોફ્ટવેર માટે ચૂકવણી કરી છે કહેવાય નહીં અને તમારી નોંધણી કોડ ઇનપુટ? તમે કોમ્પ્યુટર યુક્તિ ઓફ જઈને અહીં પ્રવેશ સૉર્ટ આપી શકે, પરંતુ તેના બદલે, અહીં જઈ રહી છે. અથવા, જો તમે ખરેખર છો હોંશિયારીથી, વિરોધી ખરેખર કીબોર્ડ પર ટાઇપ કરી શકો છો, ઉદાહરણ માટે, વાસ્તવિક, એક શબ્દ ન બોલ્યા 20 ન અક્ષરો છે, પરંતુ કદાચ તે અથવા તેણી કેટલાક અક્ષરો કોડ પ્રતિનિધિત્વ પ્રકારો? અને તે માટે સી કોડ નથી ચાલી રહ્યું છે, તે અક્ષરો જ હશે કે દ્વિસંગી મશીન કોડ્સ 0 અને 1 ની પ્રતિનિધિત્વ કરે છે. ધારવું પરંતુ તેઓ પૂરતી હોંશિયાર કરવા કે, કોઈક તો GetString પ્રોમ્પ્ટ પેસ્ટ કરવા માટે કરશો કંઈક કે અનિવાર્યપણે કોડ કમ્પાઈલ છે, અને છેલ્લા 4 બાઇટ્સ કે વળતર સરનામા પર ફરીથી લખી છે, અને સરનામા શું કે ઇનપુટ શું કરે છે? આ લાલ લંબચોરસ એ બફર પ્રથમ બાઇટ ની સરનામું સંગ્રહ કરે છે. જેથી તમે ખરેખર હોંશિયાર હોય છે, અને આ અજમાયશ અને ભૂલની ઘણો છે ત્યાં બહાર ખરાબ લોકો છે, પરંતુ, જો તમે બહાર આકૃતિ મોટું કેવી રીતે આ બફર છે માટે જેમ કે ઇનપુટ છેલ્લા થોડા બાઇટ્સ કે તમે કાર્યક્રમ માટે પૂરી પાડે છે તમારા બફર શરૂઆત ના સરનામા માટે સમકક્ષ હોઈ થાય છે, તમે આ કરી શકો છો. જો આપણે કહેવું, સામાન્ય રીતે, હેલ્લો, અને 0 \, કે શું બફર માં પૂર્ણ થાય છે. પરંતુ જો આપણે વધુ હોંશિયાર છીએ, અને અમે અમે શું સામાન્ય હુમલો કોડ કહી શકશો કે બફર ભરી, એ, એ, એ, જ: હુમલો, હુમલો, હુમલો, હુમલો, જ્યાં આ માત્ર કંઈક છે જે કંઈ ખરાબ કરે છે. વેલ, શું થાય છે જો તમે ખરેખર છો હોંશિયારીથી, તમે આ કરી શકે છે: 80, CO, 35, 08: લાલ અહીં બૉક્સમાં ક્રમાંકોની શ્રેણી છે. નોંધ કરો કે કે નંબર છે કે જે અહીં મેળ ખાય છે. તે રિવર્સ ક્રમમાં છે, પરંતુ તે અન્ય કેટલાક સમય પર વધારે. નોંધ કરો કે આ વળતર સરનામા ઇરાદાપૂર્વક બદલાઈ ગયેલ છે આ સરનામાંને જેટલી અહીં, મુખ્ય નથી સરનામું. તેથી જો ખરાબ વ્યક્તિ સુપર સ્માર્ટ છે, તે અથવા તેણી સમાવેશ થાય છે કે હુમલો કોડ થઇ રહ્યું છે કંઈક જેમ, 'વપરાશકર્તાની બધી ફાઈલોને કાઢી નાખો.' અથવા 'પાસવર્ડ નકલ કરો,' અથવા 'વપરાશકર્તા ખાતું કે હું પ્રવેશી શકે છે.' બધા અંતે કંઈપણ; અને આ બંને જોખમ અને સી શક્તિ છે કારણ કે તમે પોઇંટરો મારફતે મેમરી વપરાશ હોય છે અને તમે તેથી જો તમે કંઈપણ એક કમ્પ્યુટર મેમરીમાં માંગો છો લખી શકો છો. તમે કરી શકો છો કમ્પ્યુટર કંઈપણ તમે ખાલી કરવા માંગો છો દ્વારા કરવું એવું તેની પોતાની મેમરી જગ્યા અંદર આસપાસ કૂદી. અને તેથી, આ દિવસ માટે, જેથી ઘણા પ્રોગ્રામો અને ઘણા વેબસાઇટ્સ કે ગડબડ છે આ લાભ લેતા લોકો માટે ઉકાળીને પ્રમાણ ઘટાડવું. અને આ હુમલો સુપર વ્યવહારદક્ષ જેવી લાગે, પરંતુ તે હંમેશા કે માર્ગ શરૂ થતું નથી. આ વાસ્તવિકતા એ છે કે ખરાબ લોકો ખાસ કરીને કરશે શું છે, શું તે આદેશ વાક્ય પર એક કાર્યક્રમ અથવા GUI કાર્યક્રમ અથવા વેબસાઇટ છે, છે તમે હમણાં નોનસેન્સ પૂરી કરવાનું શરૂ કરો. તમે શોધ ક્ષેત્ર દાખલ કરો અને સફળ એક ખરેખર મોટી શબ્દ લખો, અને તમે તે જોવા માટે વેબસાઇટ ક્રેશ થઈ જાય તો રાહ જુઓ. અથવા તમે એ જોવા માટે જો કાર્યક્રમ કેટલાક ભૂલ સંદેશો મેનીફેસ્ટ રાહ જુઓ. જો તમે નસીબદાર વિચાર તરીકે, કારણ કે ખરાબ વ્યક્તિ, અને તમે કેટલીક ઉન્મત્ત ઇનપુટ કે કાર્યક્રમ ક્રેશ પૂરી પાડે છે, તેનો અર્થ એ કે એ પ્રોગ્રામર તમારા ખરાબ વર્તન પૂર્વાનુમાન ન હતી જે તમને કદાચ કરી શકો છો પર્યાપ્ત પ્રયાસ સાથે, એનો અર્થ એ થાય પર્યાપ્ત ટ્રાયલ અને ભૂલ, બહાર આકૃતિ કેવી રીતે વધુ ચોક્કસ હુમલો વિશે છે. જેથી ખૂબ સુરક્ષા એક ભાગ માત્ર આ હુમલાઓને ટાળવા નથી છે એકસાથે, પરંતુ તેમને શોધવા અને ખરેખર લોગ્સ પર નજર અને જોયા ઉન્મત્ત ઇનપુટ્સ શું તમારી વેબસાઇટ પર ટાઇપ કરવામાં આવતું લોકો હોય છે. શોધ શબ્દો શું કેટલાક બફર વહેતું આશા લોકો તમારી વેબસાઇટ પર ટાઇપ કરવામાં આવતું? અને આ શું ઝાકઝમાળ છે, જે માટે સામાન્ય મૂળભૂતો બધા નીચે ઉકળે, અને તે શું માટે ફાળવો અને મેમરીનો ઉપયોગ અર્થ છે? અને તે સંબંધિત, પણ, આ છે. તેથી આપણે માત્ર એક હાર્ડ ડ્રાઈવ ની અંદર હજુ સુધી ફરી ચમકારો કરવો. તેથી તમે યાદ પહેલા અઠવાડિયામાં એક અથવા બે કે જ્યારે તમે ફાઇલોને ખેંચો તમારા રીસાઇકલ બિન અથવા કચરો કરી શકો છો, શું થાય છે? [વિદ્યાર્થી] કંઈ નથી. >> અરે વાહ, સંપૂર્ણપણે કંઈ નથી. આખરે જો તમે નીચા સ્કોર ડિસ્ક જગ્યા પર, વિન્ડોઝ અથવા મેક ઓએસ તમે ફાઇલો માટે કાઢી નાંખવા શરૂ થશે. પરંતુ જો તમે ત્યાં કંઈક ખેંચો, પછી તે તમામ સલામત ન હતું. તમારા roomate મિત્ર, અથવા કુટુંબ સભ્ય કરવું બધા ડબલ ક્લિક કરો છે અને વોઇલા Query. ત્યાં બધા ઉપરછલ્લા ફાઈલો કે જે તમે કાઢી નાંખવા પ્રયાસ કર્યો છે. અમને મોટા ભાગના જેથી ઓછામાં ઓછા જાણે છે કે તમે યોગ્ય ક્લિક કરો અથવા ક્લિક કરો નિયંત્રણ છે અને ખાલી ટ્રૅશમાં, અથવા તે કંઈક. પણ પછી, તે તદ્દન યુક્તિ કરતું નથી. કારણ કે શું થાય છે જ્યારે તમે તમારી હાર્ડ ડ્રાઇવ પર ફાઇલ હોય કે અમુક શબ્દ દસ્તાવેજ અથવા અમુક JPEG રજૂ? અને આ તમારી હાર્ડ ડ્રાઈવ રજૂ કરે છે, અને આપણે કહેવું આ અહીં sliver કે ફાઈલ રજૂ કરે છે, અને તે 0 અને 1 ની સંપૂર્ણ જથ્થો બનેલા છે. શું થાય છે જ્યારે તમે કચરાપેટી Name અથવા રીસાઇકલ બિન કે ફાઈલ માત્ર નથી ખેંચો, પણ તે ખાલી? કશું ના ક્રમમાં ગોઠવો. તે સંપૂર્ણપણે કશું હવે નથી. હવે તે ફક્ત કશું, કારણ કે થોડા કંઈક આ ટેબલ સ્વરૂપમાં થાય છે. તેથી ત્યાં એક કમ્પ્યુટર મેમરી ની અંદર ડેટાબેઝ અથવા ટેબલ કેટલાક પ્રકારની છે કે અનિવાર્યપણે ફાઈલો નામો માટે 1 સ્તંભ છે, અને ફાઈલ સ્થાન છે, જ્યાં આ 123 સ્થાન, ફક્ત રેન્ડમ નંબર હોઇ શકે છે માટે 1 સ્તંભ. તેથી અમે x.jpg કંઈક, અને 123 સ્થાન હોય છે. અને શું તે પછી શું થાય છે, જ્યારે તમે તમારી ટ્રૅશમાં ખાલી? કે દૂર જાય છે. પરંતુ દૂર જવા નથી શું 0 અને 1 ની છે. તેથી શું, પછી, આ જોડાણ માટે 4 pset? વેલ 4 pset સાથે, માત્ર કારણ કે અમે આકસ્મિક ભૂંસી કર્યા છે કોમ્પેક્ટ ફ્લેશ કાર્ડ છે કે આ બધા ફોટા હતા, અથવા માત્ર કારણ કે તે ખરાબ નસીબ દ્વારા દૂષિત બની હતી, નથી તેનો અર્થ નથી કે 0 અને 1 ની હજુ પણ ત્યાં નથી. કદાચ થોડા કારણ કે કંઈક બગડી ગયું છે ખોવાઈ જાય છે અર્થમાં કે અમુક 0 હિસ્સો 1 અને 1 હિસ્સો બની 0 હિસ્સો બની ગયા. ખરાબ વસ્તુઓ બગડેલ સોફ્ટવેર અથવા હાર્ડવેર ખામીયુક્ત કારણે થાય છે. પરંતુ તે બિટ્સ ઘણા, કદાચ તેમને 100% પણ હજુ ત્યાં છે, તે ફક્ત કમ્પ્યૂટર અથવા કૅમેરા જ્યાં JPEG 1 શરૂ ખબર નથી અને જ્યાં JPEG 2 શરૂ જો, પરંતુ તમે, પ્રોગ્રામર, સમજશકિત એક બીટ છે, જ્યાં તે JPEGs છે અથવા તેઓ શું દેખાશે સાથે ખબર છે, તમે 0 અને 1 ની વિશ્લેષણ અને કહે છે, 'Ooh કરી શકો છો. JPEG. Ooh, JPEG. ' તમે અનિવાર્યપણે માટે માત્ર એક સાથે એક પ્રોગ્રામ લખવા કરી શકો છો અથવા જ્યારે લૂપ કે જે તે ફાઈલો દરેક અને દરેક એક ધક્કામાંથી. તેથી પાઠ પછી, શરૂ કરવા "સુરક્ષિત" તમારી ફાઇલોને ભૂંસી નાખી છે જો તમે આ સંપૂર્ણપણે ટાળવા માંગો છો. હા? [વિદ્યાર્થી પ્રશ્ન, દુર્બોધ] >> વધુ મેમરી કરતાં તમે પહેલા કરી હતી છે - ઓહ! પ્રશ્ન સારું. શા માટે તેથી, તો પછી ટ્રૅશ ખાલી પછી, નથી તમારા કમ્પ્યુટર તમે કહો કે તમે વધુ મુક્ત જગ્યા કરતાં તમે પહેલાં કર્યું છે? ટૂંકમાં, કારણ કે તે પડેલો છે. વધુ તકનીકી, તમે વધુ જગ્યા નથી. કારણ કે હવે તમે કહ્યું હોય, તો તમે અન્ય સામગ્રી મૂકવામાં જ્યાં તે ફાઇલ એક વખત થઇ હતી, પરંતુ તેનો અર્થ એ નથી કે બિટ્સ દૂર જવું છે, અને એનો અર્થ એ નથી કે બિટ્સ બધા 0 હિસ્સો બદલાઈ રહ્યાં છે, દાખલા તરીકે તમારા રક્ષણ માટે. તેનાથી વિરુદ્ધ, જો તમે "સુરક્ષિત" ભૂંસી ફાઈલો, અથવા ભૌતિક ઉપકરણ નષ્ટ કે ખરેખર માત્ર રસ્તો છે, ક્યારેક કે આસપાસ. તેથી અમે નોંધ અર્ધ ડરામણી પર શા માટે છોડી નથી, અને અમે તમને સોમવાર પર જોશે. CS50.TV