[Powered by Google Translate] [5 અઠવાડિયું]
[ડેવિડ જે Malan - હાર્વર્ડ યુનિવર્સિટી]
[આ CS50 છે. - CS50.TV]
>> આ CS50, 5 અઠવાડિયું છે.
આજે અને આ અઠવાડિયે, અમે વિદેશી વિશ્વના થોડો દાખલ
સમસ્યા સંદર્ભમાં 4 સુયોજિત કરો.
આજે એક સંક્ષિપ્ત વ્યાખ્યાન શકે છે કારણ કે ત્યાં અહીં એક ખાસ ઘટના પછીથી થશે.
તેથી અમે એક ડોકિયું લેવા અને બંને વિદ્યાર્થીઓ અને આનંદદાયક માતા - પિતા આજે પીંજવું પડશે
વસ્તુઓ કે જે ક્ષિતિજ પર છે કેટલાક.
>> તેમની વચ્ચે, સોમવાર, તમે થોડા વધુ સહપાઠીઓને હશે.
edX હાર્વર્ડ અને એમઆઇટી OpenCourseWare અને વધુ માટે નવો ઑનલાઇન પહેલ,
છે સોમવાર, જે સોમવારે આવે અર્થ પર હાર્વર્ડ કેમ્પસ પર લોંચ
તમે છેલ્લા કાઉન્ટની તરીકે હોય, 86,000 વધારાની સહપાઠીઓને કરશે
માતાનો CS50 ભાષણો અને વિભાગો સાથે કોણ કરી સાથે નીચેના કરશે
અને વૉકથ્રૂઝ અને સમસ્યા સમૂહો.
અને આ ભાગ તરીકે, તમે CS50 અને હવે CS50x પ્રારંભિક વર્ગ સભ્યો બની જશે.
આ ભાગ તરીકે હવે ખ્યાલ છે, કે જે અમુક upsides તેમજ હશે.
આ માટે તૈયાર વિદ્યાર્થીઓ મોટા નંબર માટે, વિચાર,
તે પૂરતો કહે છે કે ભલે અમે 108 TFs અને સીએએસ હોય છે,
તે તદ્દન શ્રેષ્ઠ ગુણોત્તર વિદ્યાર્થી શિક્ષક-એકવાર અમે 80,000 વિદ્યાર્થીઓના ફટકો નથી.
અમે ઘણા સમસ્યા વર્ગીકરણ કરી સુયોજિત કરે જાતે જઈ રહ્યાં છો,
જેથી સમસ્યા સમૂહ આ સપ્તાહ રજૂઆત CS50 તપાસ થશે,
જે ઉપયોગિતા આદેશ વાક્ય હોઈ શકે સાધન અંદર રહ્યું છે
કે તમે એક વાર તમે આ સપ્તાહના પછી અપડેટ મળશે.
તમે તમારા પોતાના pset પર આદેશ, check50, સ્કોર કરી શકશો,
અને તમે તરીકે ઝટપટ પ્રતિસાદ વિચાર છે કે શું તમારી કાર્યક્રમ સાચું અથવા ખોટું છે પડશે
વિવિધ ડિઝાઇન સ્પષ્ટીકરણો અનુસાર કે અમે પૂરી પાડવામાં આવી છે.
સમસ્યા સેટ સ્પષ્ટીકરણમાં પર વધુ.
આ CS50x સહપાઠીઓને આ ઉપયોગ કરીને કરવામાં આવશે છે.
>> સમસ્યા 4 સેટ ફોરેન્સિક્સ વિશે બધા છે,
અને આ pset ખરેખર કેટલીક સામગ્રી વાસ્તવિક જીવન દ્વારા પ્રેરણા આપી હતી
જ્યારે હું ગ્રેજ્યુએટ સ્કૂલ હતી જેમાં હું હંમેશ માટે ઇન્ટર્ન
મિડલસેક્સ કાઉન્ટીના ડિસ્ટ્રીક્ટ એટર્નીની ઓફિસ ફોરેન્સિક કાર્ય સાથે
તેમના મુખ્ય ફોરેન્સિક તપાસનીસ સાથે.
આ શું પૂરવાર છે, મને લાગે છે કે હું થોડા અઠવાડિયા ભૂતકાળ ઉલ્લેખ કર્યો છે,
છે માસ રાજ્ય પોલીસ અથવા અન્ય માં આવશે,
તેઓ બોલ હાર્ડ ડ્રાઈવો અને CD ઓ અને ફ્લોપી ડિસ્ક અને તેમના જેવા જેવી વસ્તુઓ છોડો છો,
અને પછી વિદેશી ઓફિસ ધ્યેય સહમતી હતી
કે શું ત્યાં હતી કે અમુક પ્રકારના પુરાવા ન હતા.
આ સ્પેશિયલ ઈન્વેસ્ટીગેશન એકમ હતું, તેથી તેને સફેદ કોલર ગુનો હતો.
તે ગુના વધુ મુશ્કેલીમાં સૉર્ટ કરો, ડિજિટલ મીડિયા અમુક પ્રકારના સંડોવતા કંઈપણ હતી.
તે તારણ છે કે, નહીં કે ઘણા લોકો એવું કહેતા ઇમેઇલ લખવા "હું તે કર્યું હતું."
તેથી ઘણી વાર, આ ફોરેન્સિક શોધ અપ કે બધા ખૂબ ફળ બંધ કર્યું નહોતું,
પરંતુ ક્યારેક લોકો જેમ કે ઇમેઇલ્સ લખી હતી.
તેથી, કેટલીકવાર પ્રયત્નો મળ્યા હતા.
>> પરંતુ દોરી આ ફોરેન્સિક pset માટે, અમે pset4 માં દાખલ કરવામાં આવશે ગ્રાફિક્સ એક બીટ.
તમે કદાચ ઓક્ટાવીયનને માટે આ વસ્તુઓ લઈ - આ દિવસોમાં - JPEGs, GIFs, અને જેમ.
પરંતુ જો તમે ખરેખર તે વિશે વિચારો, ઇમેજ, મોટાભાગના રોબ ચહેરાની જેમ,
ડોટ્સ અથવા પિક્સેલની હાર તરીકે રજૂ કરવામાં કરી શકાય છે.
માતાનો રોબ ચહેરો કિસ્સામાં, ત્યાં રંગો તમામ પ્રકારના છે,
અને અમે વ્યક્તિગત બિંદુઓ, અન્યથા પિક્સેલ્સ તરીકે ઓળખાય જુઓ શરૂ,
એકવાર અમે સાઇન ઝૂમ શરૂ
પરંતુ જો આપણે વિશ્વમાં થોડી સરળ અને માત્ર કહે છે કે આ અહીં કાળા અને સફેદ રોબ છે,
કાળા અને સફેદ પ્રતિનિધિત્વ કરે છે, અમે માત્ર દ્વિસંગી વાપરી શકો છો.
અને જો અમે દ્વિસંગી ઉપયોગ જઈ રહ્યાં છો, 1 અથવા 0, અમે આ જ ઇમેજ વ્યક્ત કરી શકો છો
માતાનો રોબ બિટ્સ આ પેટર્ન સ્માઈલિંગ ચહેરો છે.
11000011 સફેદ, સફેદ, કાળા, કાળા, કાળા, કાળા, સફેદ, સફેદ રજૂ કરે છે.
અને તેથી તે એક વિશાળ કૂદકો પછી નથી માટે રંગબેરંગી ફોટોગ્રાફ્સ વિશે વાત શરૂ કરવા માટે,
વસ્તુઓ છે કે જે તમને Facebook પર જોવા અથવા ડિજીટલ કેમેરા સાથે લઈ છો.
પરંતુ ચોક્કસપણે જ્યારે તે રંગો માટે આવે છે, તમે વધુ બિટ્સ જરૂર છે.
અને તદ્દન ફોટોગ્રાફ વિશ્વમાં સામાન્ય રંગ 1-bit ઉપયોગ ન હોય,
કારણ કે આ સૂચવે છે, પણ 24-bit રંગ છે, જ્યાં તમે ખરેખર લાખો રંગ મળે છે.
તેથી કિસ્સામાં જ્યારે અમે રોબ આંખ પર ઝૂમ કરેલું,
કે વિવિધ રંગબેરંગી શક્યતાઓ લાખો કોઈપણ સંખ્યાની હતી.
તેથી અમે સમસ્યા 4 સમૂહ માં તેમજ walkthrough આ રજૂઆત પડશે,
જે આજે સામાન્ય 2:30 બદલે 3:30 ખાતે શુક્રવારે અહીં વ્યાખ્યાન કારણે હશે.
પરંતુ વિડિઓ સામાન્ય કાલે તરીકે ઑનલાઇન થશે.
>> અમે પણ તમે બીજી ફાઇલ ફોર્મેટમાં દાખલ પડશે.
આ ઇરાદાપૂર્વક પ્રથમ લાવનારાઓ જોવા રાખવાનો છે,
પરંતુ આ માત્ર એક સી સ્ટ્રક્ટ માટે કેટલાક દસ્તાવેજો છે.
તે તારણ કે જે Microsoft વર્ષ પહેલાં આ બંધારણમાં લોકપ્રિય બનાવવામાં મદદ કરી
આ બીટમેપ ફાઇલ ફોર્મેટ, BMP, અને આ એક સુપર સરળ, રંગબેરંગી ગ્રાફિકવાળા ફાઈલ બંધારણમાં હતી કહેવાય
કે અમુક સમય માટે શાંત ઉપયોગ કરવામાં આવ્યો હતો અને ડેસ્કટોપ પર વોલપેપરો માટે ક્યારેક હજુ પણ.
જો તમે Windows XP અને આ ટેકરીઓનો અને વાદળી આકાશમાં પાછા વિચારો,
કે સામાન્ય રીતે એક bmp અથવા બીટમેપ છબી હતી.
ત્યાર બાદ બીટમેપ આપણા માટે આનંદ છે કારણ કે તેઓ થોડી વધુ જટિલતા છે.
તે ન 0s અને 1 સે આ ગ્રિડ તરીકે સરળ તદ્દન છે.
તેની જગ્યાએ, તમે એક ફાઈલ શરૂઆતમાં હેડર જેવી વસ્તુઓ હોય છે.
તેથી bmp. ફાઈલની અંદર બીજા શબ્દોમાં માં 0s અને 1 સે સંપૂર્ણ સમૂહ છે,
પરંતુ કેટલીક વધારાની અને તેમાં 0s 1 સે છે.
અને તે તારણ છે કે અમે શું કદાચ માટે વર્ષ માટે મંજુર ભર્યું છે -
ડૉક. અથવા. xls અથવા mp3., જેમ કે ફાઈલ બંધારણો MP4., ફાઈલ બંધારણો ગમે
કે તમે પરિચિત છો - તે શું પણ નથી ફાઈલ બંધારણમાં હોવો અર્થ,
કારણ કે આ દિવસે ઓવરને અંતે આ બધી ફાઈલોને અમે 0s અને 1 સે હોય વાપરો.
અને કદાચ તે 0s અને 1 સે ASCII મારફતે એબીસી અથવા જેમ પ્રતિનિધિત્વ કરે છે,
પરંતુ દિવસ ઓવરને અંતે, તે હજુ પણ છે માત્ર 0s અને 1 સે.
તેથી માનવીઓ માત્ર ક્યારેક ક્યારેક એક નવી ફાઇલ ફોર્મેટ શોધ નક્કી
જ્યાં તેઓ પ્રમાણિત બિટ્સની પેટર્ન શું ખરેખર અર્થ કરશે.
અને આ અહીં કિસ્સામાં, લોકો જેઓ બીટમેપ ફાઇલ ફોર્મેટ માટે રચાયેલ
કહ્યું હતું કે એક બીટમેપ ફાઇલ માં પહેલીવાર બાઇટ ખાતે, ઓફસેટ ત્યાં 0 દ્વારા સૂચિત,
ત્યાં કેટલાક રહસ્યમય નામવાળી ચલ કહેવાય bfType પ્રયત્ન રહ્યું છે,
જે ફક્ત બીટમેપ ફાઇલ પ્રકાર માટે વપરાય છે, બીટમેપ ફાઇલ પ્રકાર આ શું છે.
તમે કદાચ બીજા પંક્તિ કે 2 સરભર બાઇટ 2 નંબર અટકળ બાંધવી કરી શકો છો,
0s અને 1 સે એક પેટર્ન છે કે શું પ્રતિનિધિત્વ ધરાવે છે? કંઈક માપ.
અને તેને ત્યાંથી પર કોઈ રન નોંધાયો નહીં.
તેથી સમસ્યા 4 સમૂહ, તમે આ કેટલીક બાબતો દ્વારા ચાલ્યો આવશે.
અમે સમાપ્ત તેમને બધા અંગે સંભાળ કરશે.
નોટિસ પરંતુ તે 54 બાઇટ આસપાસ રસપ્રદ વિચાર થાય છે: rgbtBlue, ગ્રીન, અને Red.
જો તમે ક્યારેય સાંભળ્યું કરેલા ટૂંકાક્ષર RGB - લાલ, લીલો, વાદળી - આ છે કે જે એક સંદર્ભ છે
કારણ કે તે તારણ તમે સપ્તરંગી તમામ રંગો ચિતરવાનો કરી શકો છો
લાલ અને વાદળી અને લીલા કેટલાક મિશ્રણ છે.
અને હકીકતમાં, રૂમ માં માતા - પિતા વહેલામાં પ્રોજેક્ટરો કેટલાક યાદ શકે છે.
આ દિવસોમાં, તમે માત્ર એક તેજસ્વી પ્રકાશ એક લેન્સ બહાર આવતા જોવા માટે,
પરંતુ એક દિવસ પાછા તમે લાલ લેન્સ, વાદળી લેન્સ, અને ગ્રીન લેન્સ હતી,
અને સાથે સાથે તેઓ સ્ક્રીન ધ્યાનમાં રાખીને અને એક રંગીન ચિત્ર રચના કરી હતી.
અને ઘણી વાર, માધ્યમિક શાળાઓ અને ઉચ્ચ શાળાઓમાં તે લેન્સ હશે
અત્યાર સુધીમાં સહેજ વાંકું, તેથી તમે ડબલ અથવા ટ્રિપલ છબીઓ દેખાય જેવું હતા.
પણ જે વિચાર હતો. તમે લાલ અને લીલો અને વાદળી ચિત્રો પ્રકાશ હતી.
અને તે જ સિદ્ધાંત કમ્પ્યુટર્સ ઉપયોગ થાય છે.
>> તેથી તમારા માટે પછી પ્રોબ્લેમ માં પડકારો વચ્ચે 4 સેટ કરવા માટે અમુક વસ્તુઓ હશે આવે છે.
એક ખરેખર એક છબી માપ બદલવાનું હોય છે, માટે 0s અને 1 સે એક પેટર્ન લઇ,
બહાર આકૃતિ જે 0s અને 1 સે ઓફ હિસ્સામાં આ જેવા માળખામાં શું પ્રતિનિધિત્વ કરે છે,
અને પછી બહાર આકૃતિ કેવી રીતે પિક્સેલ્સ નકલ કરવા માટે છે - રેડ્સ, બ્લૂઝ, તો ગ્રીન્સ -
અંદર તેથી કે જે, જ્યારે એક ચિત્ર આ જેવા શરૂઆતમાં દેખાય છે
આ જેવા કે પછી તેની જગ્યાએ જોવા શકે છે.
અન્ય પડકારો વચ્ચે ખૂબ પ્રયત્ન કરો કે તમે ફોરેન્સિક છબી સોંપવામાં આવશે રહ્યું છે
ડિજિટલ કૅમેરા એક વાસ્તવિક ફાઇલ.
અને તે કેમેરા પર, એક વખત સમય પર, ફોટા સંપૂર્ણ સમૂહ હતા.
આ સમસ્યા અમે આકસ્મિક ભૂંસી છે અથવા હતો ઇમેજ કોઈક બગડી.
ખરાબ વસ્તુઓ ડિજિટલ કેમેરા સાથે થાય છે.
અને તેથી અમે ઝડપથી તમારા માટે કે કાર્ડ 0s અને 1 સે બોલ તમામ નકલ,
એક મોટા ફાઈલ તેમને બધા સેવ કરો, અને પછી અમે તેમને પ્રોબ્લેમ માં તમે સોંપવાની પડશે 4 સેટ કરો
જેથી તમે સી એક કાર્યક્રમ કે જેની સાથે તે JPEGs તમામ પુનઃપ્રાપ્ત લખી, આદર્શ રીતે કરી શકે છે.
અને તે તારણ છે કે JPEGs છે, તેમ છતાં તેઓ એક જટિલ ફાઇલ ફોર્મેટ કંઈક અંશે છો -
તેઓ વધુ આ સ્માઈલિંગ અહીં ચહેરો કરતાં જટિલ ખૂબ છો -
તે તારણ છે કે જે દરેક JPEG 0s અને 1 સે સમાન તરાહો સાથે શરૂ થાય છે.
તેથી વાપરી રહ્યા હોય, છેવટે, જ્યારે કે લૂપ અથવા સમાન માટે લૂપ એક,
તમે બધા 0s અને 1 સે પર આ ફોરેન્સિક છબી ફરી વળવું કરી શકો છો,
અને દરેક વખતે જ્યારે તમે વિશિષ્ટ પેટર્ન કે જે સમસ્યા સેટ સ્પષ્ટીકરણમાં વ્યાખ્યાયિત છે જુઓ,
તમે અહીં ધારે ઘણી ઊંચી સંભાવના સાથે છે, કોઈ JPEG શરૂઆત કરી શકે છે.
અને તરત જ તમે જ પેટર્ન બાઇટ્સ કેટલાક નંબર શોધવા
અથવા કિલોબાઈટોમાં અથવા મેગાબાઇટ્સ પછી, તમે અહીં ધારણ કરી શકે છે બીજી JPEG છે,
ફોટો I એ પ્રથમ એક પછી લીધો હતો.
મને કે પ્રથમ ફાઈલ વાંચવાથી બંધ, આ એક નવી લેખિત શરૂ કરવા માટે,
અને pset4 માટે તમારા કાર્યક્રમ નું આઉટપુટ ઘણા 50 તરીકે JPEGs પ્રયત્ન રહ્યું છે.
અને જો તે 50 JPEGs નથી, તમે એક લૂપ એક બીટ છે.
જો તમે JPEGs એક અનંત નંબર હોય, તમે એક અનંત લૂપ છે.
જેથી પણ તદ્દન સામાન્ય કેસ હશે.
જેથી શું ક્ષિતિજ પર છે.
>> અમને પાછળ 0 ક્વિઝ, મારા ઇમેઇલ દીઠ ખ્યાલ કે અચૂકપણે ત્યાં લોકો જેઓ બન્ને ખુશ છે,
તટસ્થ અને ક્વિઝ આસપાસ ઉદાસી 0 સમય સૉર્ટ કરો.
કૃપા કરીને અને મને બહાર પહોંચે છે, માથા ટીએફ Zamyla, તમારી પોતાની ટીએફ નથી,
અથવા સીએએસ એક કે તમે જાણો છો જો તમે ચર્ચા વસ્તુઓ કેવી ગયા માંગો છો.
>> જેથી માતા - પિતા ઓરડામાં અહીં પ્રભાવિત છે, CS50 પુસ્તકાલય શું છે?
[અટ્ટહાસ્ય] ગુડ કામ.
આ CS50 પુસ્તકાલય શું છે? યાહ. >> [વિદ્યાર્થી] તે કોડ સમૂહ પૂર્વ લેખિત છે [અશ્રાવ્ય]
ઠીક છે, સારુ.
તે કોડ સમૂહ પૂર્વ લેખિત કે સ્ટાફ લખ્યું કે, અમે તમને પૂરી પાડે છે,
કે અમુક સામાન્ય કાર્યક્ષમતા પૂરી પાડે છે,
મને શબ્દમાળા મેળવવા જેવી સામગ્રી, મને વિચાર પૂર્ણાંક - જે કાર્યોને અંહિ યાદી થયેલ છે બધી.
>> હવે શરૂ કરી રહ્યા છીએ, અમે ખરેખર આ તાલીમ વ્હીલ્સ લઇ બોલ શરૂ કરો.
અમે દૂર તમે એક શબ્દમાળા લેવા શરૂ જઈ રહ્યાં છો,
સ્મૃતિ કે જે શું વાસ્તવિક માહિતી પ્રકાર માટે માત્ર એક પર્યાય હતો? >> [બહુવિધ વિદ્યાર્થીઓ] ચાર *.
ચાર *. માતા - પિતા માટે, કે કદાચ [બનાવે whooshing અવાજ] હતો. કે સારા હોય છે.
ચાર * અમે તમામ વધુ સ્ક્રીન પર જોવા તરીકે અમે અમારા શબ્દભંડોળ માંથી શબ્દમાળા દૂર શરૂ કરી શકશો,
ઓછામાં ઓછું જ્યારે તે વાસ્તવમાં કોડ લખવા માટે આવે છે.
એ જ રીતે, અમે આ વિધેયો કેટલાકનો ઉપયોગ કરીને ખૂબ તરીકે બંધ થશે
કારણ કે અમારા કાર્યક્રમોનું વધુ વ્યવહારદક્ષ વિચાર થશે.
બદલે માત્ર કાર્યક્રમો કે જે પ્રોમ્પ્ટ ખીલેલું સાથે ત્યાં બેસવા લખો,
વપરાશકર્તા માટે રાહ કંઈક લખો, તમે બીજે ક્યાંકથી તમારી ઇનપુટ્સ મળશે.
હમણાં પૂરતું, તમે તેમને સ્થાનિક હાર્ડ ડ્રાઇવ પર બિટ્સ શ્રેણીમાંથી મળશે.
તમે તેને બદલે ભવિષ્યમાં નેટવર્ક જોડાણ તેમને મળશે,
કેટલાક ક્યાંક વેબસાઇટ.
>> જેથી પ્રથમ વખત પાછળ આ સ્તર છાલ અને દો અપ CS50 ઉપકરણ ખેંચવાનો
અને આ cs50.h તરીકે ઓળખાતી ફાઈલ છે, કે જે તમે # થઈ અઠવાડિયા માટે સમાવેશ થાય છે,
દો પરંતુ ખરેખર શું આ અંદર છે.
વાદળી માં ફાઇલ ટોચ માત્ર ટિપ્પણીઓ સંપૂર્ણ સમૂહ છે:
વોરંટી માહિતી અને લાયસન્સ.
આ સોફ્ટવેર એક સામાન્ય ફેરફાર જેવું છે
કારણ કે સોફ્ટવેર ઘણો આ દિવસોમાં એ છે જે ઓપન સોર્સ કહેવાય છે,
જેનો અર્થ છે કે કોઈ વ્યક્તિ કોડ લખ્યું છે અને તે મુક્ત રીતે ઉપલબ્ધ કરવામાં
માત્ર સ્કોર અને ઉપયોગ કરવા માટે, પરંતુ વાસ્તવમાં વાંચી અને બદલવા અને તમારું કામ સંકલિત.
જેથી તમે શું ઉપયોગ કરી રહ્યો છું, ખૂબ જ નાના સ્વરૂપ ધરાવે ઓપન સોર્સ સોફ્ટવેર,.
જો હું ટિપ્પણીઓ ભૂતકાળ સરકાવો, જોકે, અમે કેટલાક વધુ પરિચિત વસ્તુઓ જોવાનું શરૂ કરશો.
અહીં ટોચ કે cs50.h ફાઈલ હેડર ફાઈલો સંપૂર્ણ સમૂહ સમાવે છે ખાતે નોટિસ.
આમાંથી મોટા ભાગના, અમે પહેલાં જોઈ છે, પરંતુ એક પરિચિત છે.
આ જે અમે કરેલ છે, સંક્ષિપ્તમાં જોકે જોવા મળે છે, આમ અત્યાર સુધી? >> [વિદ્યાર્થી] સ્ટાન્ડર્ડ લાઇબ્રેરી.
અરે વાહ, સ્ટાન્ડર્ડ લાઇબ્રેરી. stdlib.h malloc છે.
એકવાર અમે ગતિશીલ મેમરી ફાળવણી વિશે વાત શરૂ કરી,
જે અમે પાછા આગામી સપ્તાહ માટે પણ આવી પડશે, અમે તે ફાઈલ સહિત શરૂઆત કરી હતી.
તે તારણ આપે છે કે bool અને સાચા અને ખોટા વાસ્તવમાં સી દીઠ સે અસ્તિત્વમાં નથી
જ્યાં સુધી તમે આ ફાઇલને અહીં સમાવેશ થાય છે.
અમે અઠવાડિયા માટે stdbool.h છે પણ સમાવેશ થાય
જેથી તમે એક bool, જે સાચું અથવા ખોટું. વિચારને ઉપયોગ કરી શકો છો
આ વિના, તો તમે તેને નકલી ઓફ સૉર્ટ અને પૂર્ણાંક ઉપયોગ હશે
અને માત્ર આપખુદ ધારે છે કે 0 ખોટું છે અને 1 સાચું છે.
જો અમે નીચે વધુ સ્ક્રોલ, અહીં શબ્દમાળા અમારી વ્યાખ્યા છે.
તે તારણ, કારણ કે અમે પહેલાં જણાવ્યું હતું કે, કરી લીધી છે, કે જ્યાં આ તારો છે ખરેખર તો કોઈ વાંધો નથી.
તમે પણ જગ્યા તમામ આસપાસ હોઈ શકે છે.
અમે આ સત્ર આ આવ્યા છે તે પ્રોત્સાહન સ્પષ્ટ કરે છે
કે તારો આ પ્રકાર સાથે કરી છે,
પરંતુ જેમ સામાન્ય ખ્યાલ, થોડી વધુ એક સામાન્ય જો,
તેને ત્યાં મૂકી છે, પરંતુ વિધેયાત્મક રીતે તે જ વાત છે.
પરંતુ હવે જો આપણે નીચે વધુ વાંચો, ચાલો GetInt પર એક નજર
કારણ કે અમે જે કંઈપણ આ સત્ર પહેલાં કે કદાચ પ્રથમ ઉપયોગ થાય છે.
અહીં GetInt છે. આ શું છે? >> [વિદ્યાર્થી] એક પ્રોટોટાઇપ. >> આ માત્ર એક પ્રોટોટાઇપ છે.
ઘણી વખત, અમે અમારી ની ટોચે પહોંચી અને અંતે પ્રોટોટાઇપ મૂકેલ છે કૈચ ફાઈલો.
પરંતુ તમે પણ હેડર ફાઈલો, એચ. ફાઇલો, આ અહીં એક જેવી પ્રોટોટાઇપ મૂકી શકો છો
જેથી જ્યારે તમે કેટલાક કાર્યો લખે છે કે, તમે અન્ય લોકો માટે ઉપયોગ કરવાનો પ્રયત્ન કરવા માંગો છો,
જે બરાબર CS50 લાઇબ્રેરી સાથે કેસ છે,
તમે માત્ર cs50.c કંઈક તમારા કાર્યો અમલમાં મૂકવા માટે,
તમે પણ છે કે ફાઈલ ટોચ પર નથી, પરંતુ એક હેડર ફાઈલ ટોચ પર પ્રોટોટાઇપ મૂકો.
પછી તે હેડર ફાઈલ છે મિત્રો અને સહકર્મીઓ શું સમાવેશ થાય છે
સાથે # તેમના પોતાના કોડ માં સમાવેશ થાય છે.
આ બધા સમય તેથી, તમે આ પ્રોટોટાઇપ તમામ કરવામાં સહિત કર્યું છે,
અસરકારક રીતે તમારી ફાઈલ ટોચ પરંતુ આ માર્ગ દ્વારા # પદ્ધતિ સમાવેશ થાય છે,
તમારા પોતાના માં અનિવાર્યપણે નકલો અને pastes આ ફાઈલ છે.
અહીં કેટલીક એકદમ વિગતવાર દસ્તાવેજીકરણ છે.
અમે ખૂબ ખૂબ માટે મંજૂર છે કે GetInt પૂર્ણાંક નોંધાયો ભર્યું છે,
પરંતુ તે વળે બહાર અમુક ખૂણામાં કેસો છે.
શું એ સંખ્યા છે કે રસ્તો ખૂબ મોટી છે જેમાં વપરાશકર્તા પ્રકારો જો, quintillion એક,
કે જે હમણાં જ પૂર્ણાંક ની અંદર ફિટ ન કરી શકે? અપેક્ષિત વર્તણૂક શું છે?
આદર્શ રીતે, તે ધારી છે.
તેથી આ કિસ્સામાં, જો તમે વાસ્તવમાં સુંદર પ્રિન્ટ વાંચવા,
તમે ખરેખર કે જો રેખા વાંચી શકાતી નથી, આ વળતર INT_MAX જોશો.
અમે આ વિશે ક્યારેય વાત કરી, કર્યા છે, પરંતુ તેના કેપિટલાઈઝેશન પર આધારિત છે, શું તે સંભવિત છે કદાચ?
[વિદ્યાર્થી] એ સતત. >> તે સતત છે.
કેટલાક ખાસ સતત કે કદાચ એક તે હેડર ફાઈલો જાહેર કરવામાં આવ્યું છે તે છે
કે જે ફાઈલ ઉચ્ચ અપ, અને INT_MAX કદાચ 2 આશરે અબજ કંઈક છે,
તે છે, કારણ કે અમે કોઈક કે જે કંઈક સૂચક જરૂર વિચાર ખોટું થયું,
અમે, હા, અમારા નિકાલ અંતે 4 અબજ નંબરો છે: અબજ માટે 2 પર અબજ -2 આપે છે અથવા લો.
વેલ, પ્રોગ્રામિંગ સામાન્ય છે શું છે તમે માત્ર એક તે નંબરો ચોરી,
0 કદાચ, કદાચ અબજ 2, -2 કદાચ ડોલર,
જેથી તમે તમારા એક શક્ય કિંમતો વિતાવે છે કે જેથી તમે વિશ્વને મોકલવું કરી શકો છો
તે જો કંઈક ખોટું થાય, હું આ સુપર મોટી કિંમત આપશે.
પરંતુ તમે વપરાશકર્તાને 234 જેવા ભેદી કંઈક લખીને ન માંગતા ... નથી, ખરેખર મોટી સંખ્યા.
તમે તેના બદલે સામાન્ય રીતે સતત તરીકે.
તેથી ખરેખર, જો તમે ગુદા કરવામાં આવી રહી હતી, છેલ્લા થોડા અઠવાડિયા, કોઈપણ સમયે તમે GetInt કહેવાય છે,
તમે એક સાથે કરવામાં આવી ચકાસણી જોઈએ જો શરત INT_MAX માં વપરાશકર્તા પ્રકાર હતી,
અથવા, વધુ સ્પષ્ટપણે GetInt વળતર INT_MAX હતી, કારણ કે જો તે કર્યું,
કે જે વાસ્તવમાં એટલે તેઓ તેને ન લખો નહોતો. કંઈક આ કિસ્સામાં ખોટું થયું.
તેથી આ એ છે જે સામાન્ય રીતે એક સંત્રી કિંમત છે, કે જે ફક્ત ખાસ અર્થ છે તરીકે ઓળખાય છે.
>> હિસ્સો હવે દો સી. ફાઇલમાં કરો.
C ની ફાઈલ સાધન કેટલાક સમયથી અસ્તિત્વમાં છે.
અને હકીકતમાં, સાધન આ પૂર્વ સંકલિત કે વસ્તુ અમે પદાર્થ કોડ તરીકે ઓળખાય માં તમારા માટે છે,
પરંતુ તે માત્ર તમે નથી વાંધો જ્યાં તે છે, કારણ કે સિસ્ટમ જાણે નથી
આ ઉપકરણ: આ સ્થિતિમાં જ્યાં તે છે.
ચાલો હવે નીચે સરકાવવા માટે GetInt અને જુઓ કે કેવી રીતે GetInt કામ કરવામાં આવ્યું છે આ બધા સમય.
અહીં અમે પહેલાં સમાન ટિપ્પણીઓ.
દો મને ફક્ત કોડ ભાગ પર ઝૂમ.
અને અમે GetInt માટે હોય શું નીચેના છે.
તેને કોઈ ઇનપુટ લે છે.
તે પૂર્ણાંક આપે છે, જ્યારે (સત્ય) છે, તેથી અમે એક ઇરાદાપૂર્વકની અનંત લૂપ છે,
પરંતુ કદાચ અમે આ કોઈક ભંગ અથવા પડશે આ અંદર આવો.
>> ચાલો આ કેવી રીતે કામ કરે છે જુઓ.
અમે લૂપ અંદર આ પ્રથમ વાક્ય માં GetString ઉપયોગ કરી, 166 લાગે છે.
આ હવે સારું આચરણ છે કારણ કે સંજોગો શું હેઠળ GetString પરત કરી શકે છે
ખાસ કીવર્ડ NULL? >> [વિદ્યાર્થી] જો કંઈક ખોટું.
જો કશું ખોટું. અને શું ખોટું જાઓ ત્યારે તમે GetString કંઈક કહી શકે છે?
યાહ. >> [વિદ્યાર્થી] Malloc તેને ints આપવા નિષ્ફળ જાય છે.
યાહ. કદાચ malloc નિષ્ફળ જાય છે.
હૂડ નીચે ક્યાંક, GetString malloc, કે જે મેમરી ફાળવે કૉલ કરે છે,
જે કોમ્પ્યુટર સ્ટોર કરવા દે અક્ષરો તમામ
કે કીબોર્ડ માં વપરાશકર્તા પ્રકારો.
ધારવું અને વપરાશકર્તા મફત સમય સંપૂર્ણ ઘણો હતો અને વધુ દાખલા તરીકે, ટાઇપ,
માં, કમ્પ્યૂટર કરતાં વધુ અક્ષરો અબજ કરતાં 2 અક્ષરો પણ રેમ છે.
GetString માટે તમે તે દર્શાવવા કરવાનો પ્રયત્ન છે.
જો આ એક સુપર, સુપર અસાધારણ ખૂણા કેસ છે,
તે કોઈક આ હેન્ડલ કરવાનો પ્રયત્ન છે,
અને તેથી GetString, જો અમે પાછા ગયા અને તેના દસ્તાવેજો વાંચવા માટે, હકીકત વળતર NULL માં કરે છે.
તેથી હવે જો GetString NULL પરત દ્વારા કરવામાં નિષ્ફળ જાય, GetInt માટે INT_MAX પરત દ્વારા નિષ્ફળ રહ્યું છે
માત્ર એક સંત્રી તરીકે. આ ફક્ત માનવ પ્રણાલિકા છે.
આ માત્ર રસ્તો તમને ખબર હોત આ કિસ્સો હોય દસ્તાવેજીકરણ વાંચન દ્વારા છે.
>> ચાલો જ્યાં પૂર્ણાંક ખરેખર મેળવેલ છે સરકાવો.
જો હું થોડુ વધુ સ્ક્રોલ, 170 લીટી માં, અમે આ રેખાઓ ઉપર કોઈ ટિપ્પણી છે.
અમે 172 માં પૂર્ણાંક, n અને ચાર રચે છે, સી, અને પછી આ નવા કાર્ય જાહેર,
જે તમને કેટલાક sscanf, પહેલાં આખા ગયા છે.
આ શબ્દમાળા scanf માટે વપરાય છે.
બીજા શબ્દોમાં કહીએ તો, મને શબ્દમાળા આપે છે અને હું તેને રસ માહિતી ટુકડાઓ માટે સ્કેન કરશે.
કે શું અર્થ છે?
ધારો કે હું કીબોર્ડ પર, શાબ્દિક, 123 લખો અને પછી Enter દબાવો.
123 ના દશાંશ માહિતી પ્રકાર જ્યારે GetString દ્વારા પરત શું છે? >> [વિદ્યાર્થી] શબ્દમાળા.
તે દેખીતી રીતે શબ્દમાળા છે અધિકાર? હું એક શબ્દમાળા મળ્યો હતો.
જેથી 123 ખરેખર છે, ક્વોટ-અવતરણ ચિહ્નો પૂરાં કરવાં, 123 એ \ તે ઓવરને અંતે 0 સાથે.
કે પૂર્ણાંક નથી. કે જે નંબર નથી. તે નંબર જેવી લાગે છે, પરંતુ તે ખરેખર નથી.
તેથી GetInt શું છે?
123 0 \ - - અને કોઈક એક વાસ્તવિક પૂર્ણાંક રૂપાંતરિત તે કે ડાબેથી જમણે શબ્દમાળા સ્કેન ધરાવે છે.
તમે આકૃતિ આ કેવી રીતે કરવું શકે છે.
જો તમે pset2 પાછા લાગે, તો તમે કદાચ થોડો સીઝર સાથે આરામદાયક મળ્યું
અથવા Vigenere છે, જેથી તમે એક શબ્દમાળા ઉપર ફરી વળવું કરી શકો છો, તમે અક્ષરો ints કન્વર્ટ કરી શકો છો.
પરંતુ હેક, તે કામ સંપૂર્ણ ઘણું.
Sscanf જેમ કાર્ય કરે છે જે તમારા માટે કરે છે જે કેમ નથી કહી?
તેથી sscanf એક દલીલ અપેક્ષા - આ કિસ્સામાં રેખા કહેવામાં આવે છે, જે એક શબ્દમાળા છે.
પછી તમે અવતરણ માં સ્પષ્ટ છે, ખૂબ સમાન printf, તમે શું આ શબ્દમાળાને જુઓ અપેક્ષા.
અને હું અહીં કહી રહ્યો છું શું છે મને અક્ષાંશ નંબર અને કદાચ એક અક્ષર જુઓ અપેક્ષા.
અને અમે શા માટે આ માત્ર એક ક્ષણ માં કેસ છે જોશો.
અને તે તારણ છે કે આ સંકેત હવે સામગ્રી યાદ અપાવે અમે વિશે વાત શરૂ
ફક્ત પહેલા એક અઠવાડિયા.
શું છે અને n અને કેચ એન્ડ અમને માટે અહીં કરી? >> [વિદ્યાર્થી] n ના સરનામું અને સી સરનામું.
યાહ. તે મને અને સી એન સરનામું સરનામા આપ્યા છે. કે શા માટે અગત્યનું છે?
તમે જાણો છો કે સી માં વિધેયો સાથે, તમે હંમેશા કિંમત અથવા કોઈ કિંમત પરત ફરી શકે છે.
તમે પૂર્ણાંક, શબ્દમાળા, એક ફ્લોટ, ચાર રચે છે, ગમે, અથવા તમે રદબાતલ પાછા આવી શકો છો પરત ફરી શકે છે,
પરંતુ તમે માત્ર એક વસ્તુ વધુમાં પાછા આવી શકો છો.
પરંતુ, અહીં આપણે sscanf મને પાછા કદાચ પૂર્ણાંક, એક અક્ષાંશ નંબર માંગો છો,
અને પણ ચાર રચે છે, અને હું એક ક્ષણ માં શા માટે ઘરનાં પરચૂરણ કામો સમજાવવું પડશે.
તમે અસરકારક રીતે sscanf બે વસ્તુઓ પરત કરવા માંગો છો, પરંતુ તે સી માં ફક્ત શક્ય નથી
તમે કે આસપાસ બે સરનામાં માં પસાર કરીને કામ કરી શકે છે
કારણ કે વહેલી તકે તમે એક કાર્ય બે સરનામાં હાથથી,
કે કાર્ય તેમની સાથે કરી શકો છો? >> [વિદ્યાર્થી] તે સરનામાઓ પર લખો.
તે પેલા સરનામાં પર લખી શકો છો.
તમે તારો કામગીરી ઉપયોગ કરે છે અને ત્યાં તે દરેક સરનામાંને, જઇ શકો છો.
તે વેરિયેબલ્સ કિંમતો બદલવા માટે સૉર્ટ કરો કે આ પદ્ધતિ બેક ડોર પરંતુ ખૂબ જ સામાન્ય છે
આ કિસ્સામાં, બે - એક માત્ર સ્થળ કરતાં વધુ.
હવે હું 1 == માટે ચકાસે છું અને પછી n પરત જો કે, વાસ્તવમાં નથી, સાચી માટે મૂલ્યાંકન નોટિસ.
તેથી શું થઈ રહ્યું છે? પારિભાષિક રીતે, તમામ અમે ખરેખર GetInt માં થાય છે કરવા માંગો છો આ છે.
123 ક્વોટ-અવતરણ ચિહ્નો પૂરાં કરવાં - અમે પાર્સ, તેથી વાત કરવા માંગો છો, અમે શબ્દમાળા વાંચી માંગો છો -
અને જો લાગે છે કે ત્યાં એક નંબર, અમે શું કરી રહ્યાં છો sscanf કહેવાની કરવા છે
આ ચલ માં n એ મારા માટે - 123 - છે કે જે નંબર મૂકો.
તેથી શા માટે તે પછી હું ખરેખર નહોતી પણ આ જ છે?
Sscanf ભૂમિકા કહેતા તમે પણ એક અક્ષર અહીં વિચાર શકે શું છે?
[અશ્રાવ્ય વિદ્યાર્થી પ્રતિભાવ] >> અ દશાંશ બિંદુ ખરેખર કામ કરી શકે છે.
ચાલો માને છે કે એક ક્ષણ માટે આવે છે. બીજું શું?
[વિદ્યાર્થી] એવું NULL હોઈ શકે છે. >> ગુડ થોટ. તે નલ પાત્ર હોઈ શકે છે.
તે વાસ્તવમાં આ કિસ્સામાં નથી. યાહ. >> [વિદ્યાર્થી] ASCII.
તે ASCII. દો અથવા મને પણ વધુ સામાન્ય રીતે.
આ% ત્યાં કો ભૂલ ચકાસણી માટે જ છે.
અમે ત્યાં ન કરવા માંગો છો સંખ્યા પછી એક અક્ષર હોવો નથી,
પરંતુ આ મને શું કરવા માટે પરવાનગી આપે શું નીચેના છે.
તે તારણ આપે છે કે sscanf, આ ઉદાહરણમાં n અને c કિંમતો અહીં સ્ટોર ઉપરાંત,
તે શું છે પણ એ નથી કે તે ચલો સંખ્યા આપે છે તે ચકાસણી કિંમતો મૂકી
તેથી જો તમે માત્ર 123 માં ટાઇપ કરો, તે પછી ફક્ત% d સાથે મેળ રહ્યું છે,
અને માત્ર n એ 123 જેવા કિંમત સાથે સંગ્રહિત નહીં,
અને કંઈ કેચ મૂકવા નહીં.
સી એક કચરો કિંમત રહે છે, તેથી વાત કરવા માટે -
કચરો કારણ કે તેમાં કેટલીક કિંમત કરવામાં ક્યારેય આરંભ છે.
જેથી કિસ્સામાં, sscanf 1 આપે છે કારણ કે હું તે 1 પોઇંટરો ઓફ રચાયેલ,
મહાન, કે જે કિસ્સામાં હું પૂર્ણાંક હોય છે તેથી હું રેખા મુક્ત કરવા માટે મેમરી મુક્ત
કે GetString ખરેખર ફાળવવામાં અને પછી હું n પાછા,
બીજું જો તમે ક્યારેય વિસ્મય જ્યાં કે પુનઃપ્રયાસ નિવેદન પરથી આવે છે, તે અહીં આવે છે.
તેથી, જો તેનાથી વિપરીત, હું 123foo લખો - માત્ર પાઠ્ય કેટલાક રેન્ડમ ક્રમ -
sscanf સંખ્યા, સંખ્યા, સંખ્યા, એફ જુઓ રહ્યું છે,
અને તે દ્વારા n એ 123 મૂકી રહ્યું છે, તે માટે કેચ માં એફ મૂકી અને પછી 2 પરત ચાલી રહ્યું છે.
તેથી અમે હોય છે, ફક્ત sscanf વર્તન, એક ખૂબ સરળ માર્ગ એ મૂળભૂત વ્યાખ્યા મદદથી -
સાથે સાથે, પ્રથમ નજરમાં પરંતુ દિવસ એકદમ સરળ પદ્ધતિ ઓવરને અંતે જટિલ -
કહેતા ત્યાં પૂર્ણાંક છે અને તેથી જો હોય છે, તે જ વસ્તુ કે હું મળ્યું?
અને અહીં સફેદજગ્યાના ઇરાદાપૂર્વકની છે.
જો તમે sscanf માટે દસ્તાવેજીકરણ વાંચી, તો તે તમને કહે છે કે જો તમે સફેદજગ્યાના એક ટુકડો સમાવેશ થાય છે
શરૂઆતમાં અથવા ઓવરને અંતે, sscanf પણ કારણ ગમે તે માટે વપરાશકર્તા, પરવાનગી આપશે,
માટે જગ્યા પટ્ટી 123 ફટકો અને તે કાયદેસર હશે.
તમે વપરાશકર્તા નથી કિકિયારી માત્ર કારણ કે તેઓ જગ્યા પટ્ટી ફટકો પડશે
શરૂઆતમાં અથવા ઓવરને અંતે, જે થોડી વપરાશકર્તા મૈત્રીપૂર્ણ વધુ છે.
>> કોઈપણ પછી પ્રશ્નો GetInt પર? યાહ. >> [વિદ્યાર્થી] જો તમે માત્ર એક કોલસો બનાવો મૂકવા?
પ્રશ્ન સારું.
જો તમે માત્ર એફ જેવા ઘરનાં પરચૂરણ કામો માં લખ્યો અને ક્યારેય 123 લખીને વિના દાખલ ફટકો?
તમે શું વિચારો છો કોડ આ વાક્ય વર્તણૂક પછી હશે?
[અશ્રાવ્ય વિદ્યાર્થી જવાબ]
અરે વાહ, જેથી sscanf કે ખૂબ આવરી કારણ કે તે કિસ્સામાં, તે n અથવા કેચ ભરી નથી ચાલી રહ્યું છે કરી શકો છો.
તે જગ્યાએ 0 પાછા, જેમાં કેસ હું પણ છે કે જે પરિસ્થિતિ મોહક છું રહ્યું છે
કારણ કે અપેક્ષિત કિંમત હું માંગો છો 1 છે.
હું માત્ર એક કરવા માંગો છો અને માત્ર એક વસ્તુ ભરી શકાય છે. પ્રશ્ન સારું.
>> અન્ય? અધિકાર છે.
>> માતાનો અહીં ના બધા વિધેયોને મારફતે જવા ન દો,
પરંતુ એક કે બાકી રસ કદાચ લાગે GetString છે
કારણ કે તે તારણ આપે છે કે GetFloat, GetInt, GetDouble, GetLongLong
બધા વાંસડા વડે એવી હોડી ચલાવવી તેમના GetString માટે વિધેય ઘણો.
તેથી આપણે કેવી રીતે તેઓ અહીં અમલમાં મૂકાયેલ છે પર એક નજર.
આ એક થોડો જટિલ લાગે છે, પરંતુ તે જ ફંડામેન્ટલ્સ ઉપયોગ કરે છે
કે અમે છેલ્લા અઠવાડિયે વાત શરૂ કરી.
GetString, જેને રદબાતલ દીઠ કોઇ દલીલ અહીં લે છે
અને તે શબ્દમાળા આપે છે, હું દેખીતી રીતે એક બફર તરીકે ઓળખાય શબ્દમાળા જાહેર છું.
હું ખરેખર છે કે શું હજી માટે ઉપયોગ કરી રહ્યું છે તે ખબર નથી, પરંતુ અમે જોશો.
એવું લાગે છે કે ક્ષમતા 0 મૂળભૂત છે.
તદ્દન ખાતરી જ્યાં આ તો, ખાતરી કરો n શું માટે વાપરી શકાય હજુ સુધી જવું છે ન જતા,
પરંતુ હવે તે થોડું વધુ રસપ્રદ દર્શાશે.
243 રેખા, અમે પૂર્ણાંક, સી જાહેર.
આ એક મૂર્ખ વિગતવાર જેવું છે.
એક કોલસો બનાવો 8 બીટ્સ છે, અને 8 બીટ્સ કેટલા અલગ અલગ કિંમતો સ્ટોર કરી શકો છો? >> [વિદ્યાર્થી] 256. >> 256.
આ સમસ્યા છે જો તમે 256 વિવિધ ASCII અક્ષરો છે, જે ત્યાં હોય છે માંગો છો
જો તમે પાછા લાગે છે - અને આ યાદ કંઈક નથી.
પરંતુ જો તમે કે મોટા ASCII ચાર્ટ પર પાછા લાગે છે અમે અઠવાડિયા પહેલા હતી,
ત્યાં કે કેસ હતા 128 અથવા 256 ASCII અક્ષરો.
અમે 0s અને 1 સે ઉપર તમામ પેટર્ન વપરાય છે.
કે સમસ્યા છે જો તમે કોઈ ભૂલ શોધવા કરવાનો પ્રયત્ન કરવા માંગો છો
જો તમે પહેલાથી જ તમારી અક્ષરો માટે કરી રહ્યાં છો 256 કિંમતો મદદથી કારણ કે,
તમે ખરેખર આગળ યોજના ઘડી ન હતી કારણ કે હવે તમે કહેતા કોઈ રીત નથી,
આ વંચાય અક્ષર નથી, આ અમુક ભૂલભરેલા સંદેશ છે.
તેથી વિશ્વ કરે છે શું છે તેઓ આગામી સૌથી મોટી કિંમત, પૂર્ણાંક કંઈક ઉપયોગ કરો છો,
જેથી તમે 4 અબજ શક્ય કિંમતો માટે બીટ્સ, 32 એક ઉન્મત્ત નંબર ધરાવે છે,
જેથી તમે ખાલી અંત તેમાંથી 257 અનિવાર્યપણે ઉપયોગ કરીને કરી શકો છો,
1 જેમાં ભૂલ તરીકે અમુક ખાસ અર્થ હોય છે.
>> તેથી આપણે આ કેવી રીતે કામ કરે છે જુઓ.
246 લીટી માં, હું આ મોટા જ્યારે લૂપ કે fgetc ફોન છે,
એફ અર્થ ફાઈલ છે, તેથી getc અને પછી stdin ની.
તે તારણ આ માત્ર કહેતા કીબોર્ડ તરફથી ઇનપુટ વાંચો વધુ ચોક્કસ માર્ગ છે.
માનક ઇનપુટ અર્થ કીબોર્ડ, પ્રમાણભૂત આઉટપુટ સ્ક્રીન અર્થ થાય છે,
અને પ્રમાણભૂત ભૂલ છે, કે જે અમે pset4 માં જોશો, સ્ક્રિન અર્થ થાય છે
પરંતુ સ્ક્રીન એક ખાસ ભાગ કે જેથી તે ખરેખર ઉત્પાદન સાથે સંકલિત છે
કે તમે છાપવાનો ઈરાદો હતો. પરંતુ ભવિષ્યમાં પર વધુ.
તેથી fgetc માત્ર અર્થ એ થાય કે કીબોર્ડ એક અક્ષર વાંચી અને તે સ્ટોર જ્યાં?
તે કેચ માં સ્ટોર કરો.
અને પછી તપાસો - તેથી હું માત્ર કેટલાક બુલિયન conjunctions છું અહીં મદદથી -
તપાસો કે તે સમાન નથી - \ n એ, જેથી વપરાશકર્તા નામ લખો હિટ છે, અમે તે સમયે રોકવા માંગો છો,
લૂપની અંત - અને આપણે પણ ખાસ સતત EOF ચકાસવા માટે કરવા માંગો છો,
જે જો તમને ખબર હોય અથવા ધારી, તે શું માટે ઊભા કરે છે? >> [વિદ્યાર્થી] ફાઈલ અંતે. ફાઇલ >> અંતે.
આ પ્રકારની છે વાહિયાત કારણ કે, જો હું કીબોર્ડ લખીને છું
ત્યાં ખરેખર કોઈ આ સામેલ ફાઈલ છે,
પરંતુ આ માત્ર સામાન્ય અર્થ ઉપયોગ ગાળાની સૉર્ટ છે
કે બીજું કંઇ તે માનવ આંગળીઓમાંથી આવી રહ્યું છે.
EOF - ફાઈલ અંત.
એક અલગ રીતે, જો તમે ક્યારેય તમારા કીબોર્ડ પર કર્યું છે નિયંત્રણ ડી દબાવો, તમે હજુ સુધી કે નહિ -
તમે નિયંત્રણ સી ફટકો કર્યું છે - નિયંત્રણ ડી આ ખાસ EOF કહેવાય સતત મોકલે છે.
તેથી હવે અમે માત્ર કેટલાક ગતિશીલ મેમરી ફાળવણી છે.
>> તેથી જો (n + 1> ક્ષમતા). હવે હું n એ સમજાવવું પડશે.
એન માત્ર કેટલા બાઇટ્સ એ બફર છે હાલમાં,
શબ્દમાળા કે જે તમે હાલમાં વપરાશકર્તા હોવ મકાન.
જો તમે તમારા બફર વધુ અક્ષરો હોવા કરતાં તમે બફર માં ક્ષમતા છે,
તર્ક અમે શું કરીએ તો પછી જરૂર વધુ ક્ષમતા ફાળવી છે.
તેથી હું પર અહીં અંકગણિત કેટલાક મલાઈહીન અને આ કાર્ય પર જ ધ્યાન કેન્દ્રિત અહીં જાઉં છું.
તમે જાણો છો malloc શું છે અથવા ઓછામાં ઓછા સામાન્ય રીતે પરિચિત છે.
એક અનુમાન realloc શું કરે છે લો. >> [વિદ્યાર્થી] મેમરી ઉમેરે છે.
તે તદ્દન મેમરી નથી ઉમેરીને છે. તે નીચે પ્રમાણે મેમરી reallocates.
જો હજી પણ શબ્દમાળા ઓવરને અંતે રૂમ છે કે જે તમને મેમરી વધુ આપી છે
કરતાં તે મૂળ તમને, તો પછી તમે તે વધારાના મેમરી મળશે.
તેથી તમે ફક્ત શબ્દમાળા અક્ષરો પાછા મૂકવા માટે પાછળ પાછળ પાછળ રાખી શકો છો.
પરંતુ જો કે આ કેસ નથી કારણ કે તમે ખૂબ લાંબો સમય waited
અને રેન્ડમ કંઈક મેમરીમાં ત્યાં plopped મળ્યો
પરંતુ અહીં નીચે વધારાની મેમરી છે, કે જે ઠીક છે.
Realloc માટે તમે બધી ભારે પ્રશિક્ષણ કરી રહ્યું છે,
શબ્દમાળા તમે વાંચ્યા છે તેથી અહીં દૂર ખસેડવા માટે, તેને મૂકી નીચે ત્યાં,
અને પછી તમે તે સમયે કેટલાક વધુ રનવે આપે છે.
>> જેથી હાથ પ્રવાહ સાથે દો, મને કહે છે કે શું GetString કરી છે
છે તે એક નાના બફર, કદાચ એક જ અક્ષર સાથે શરૂ છે,
અને બે અક્ષરો માં વપરાશકર્તા પ્રકારો જો, GetString realloc ફોન થાય છે અને કહે છે
એક અક્ષર પૂરતો ન હતો; મને બે અક્ષરો આપે છે.
પછી જો તમે લૂપની તર્ક દ્વારા વાંચી, તો તે કહેવું રહ્યું છે
આ 3 અક્ષરો ટાઇપ વપરાશકર્તા; મને હવે 2 પરંતુ 4 અક્ષરો આપી,
પછી મને 8 આપો, પછી મને 16 અને 32 આપે છે.
હકીકત એ છે કે હું ક્ષમતા દરેક સમય બમણો છું
અર્થ એ થાય કે બફર ધીમે ધીમે વધવા ન રહ્યું છે, તે માટે સુપર ઝડપી વૃદ્ધિ પામે બનશે.
અને તે શું છે તે લાભ હોઇ શકે?
હું બફર માપ શા બમણી છું
તેમ છતાં વપરાશકર્તા માત્ર એક કીબોર્ડ માંથી વધારાના પાત્ર કરવાની જરૂર પડી શકે?
[અશ્રાવ્ય વિદ્યાર્થી પ્રતિભાવ] >> કે શું છે? >> [વિદ્યાર્થી] તમે તેને ઘણી વખત વધવા નથી.
બરાબર. તમે તેને ઘણી વાર વધવા નથી.
અને આ માત્ર તમે પ્રકારની છે તમારી બેટ્સ અહીં હેજિંગ કરી રહ્યાં છો,
આ વિચાર એ હતો કે તમે ખૂબ realloc કહી ન માંગતા કારણ કે તે ધીમું હોઈ શકે છે નથી.
કોઈપણ સમયે તમે મેમરી માટે ઓપરેટિંગ સિસ્ટમ પૂછો,
જેમ તમે તરત જ ભાવિ સમસ્યા સેટ જોશો, તે થોડો સમય લાગી શકે છે.
તેથી સમય કે રકમ ઘટાડીને, જો તમે અમુક જગ્યા બગાડ કરી રહ્યાં છો,
માટે સારી વાત હોય શકે છે.
>> પરંતુ જો આપણે અહીં GetString અંતિમ ભાગ દ્વારા વાંચી -
અને ફરીથી દરેક એક વાક્ય અહીં સમજવા જેથી મહત્વપૂર્ણ આજે નથી -
નોંધ્યું છે કે તે આખરે malloc ફરીથી કહે છે
અને તે અનેક બાઇટ્સ તરીકે બરાબર ફાળવે છે, કારણ કે તે શબ્દમાળા માટે જરૂર છે
અને પછી મફત અતિશય મોટા બફર ફોન દ્વારા દૂર ફેંકી દે છે
જો તે ખરેખર ઘણી વાર બમણી મળ્યો છે.
તેથી ટૂંકા, તે કેવી રીતે GetString આ બધા સમય કાર્ય છે.
તે બધા એક સમયે છે નથી એક અક્ષર ફરીથી અને ફરીથી અને ફરીથી વાંચી,
અને દર વખતે તે કેટલીક વધારાની મેમરી જરૂર છે, તેને માટે ઓપરેટીંગ સિસ્ટમ પૂછે છે
realloc ફોન દ્વારા.
>> કોઈપણ પ્રશ્ન છે? અધિકાર છે.
>> હુમલો.
હવે અમે પોઇંટરો સમજવા અથવા ઓછામાં ઓછું વધુને વધુ પોઇન્ટર સાથે પરિચિત હોય છે,
ચાલો ધ્યાનમાં કેવી રીતે સમગ્ર વિશ્વમાં તૂટી શરૂ થાય છે
જો તમે તદ્દન વિરોધી વપરાશકર્તાઓ સામે નથી કોઈ રન નોંધાયો નહીં નથી,
જે લોકો તમારી સિસ્ટમ માં હેક કરવાનો પ્રયાસ કરી રહ્યા હોય,
જે લોકો કેટલાક નોંધણી કોડ circumventing દ્વારા તમારા સોફ્ટવેર ચોરી કરવાનો પ્રયાસ કરી રહ્યા છે
કે તેઓ અન્યથા સાઇન લખો હોય શકે છે
>> આ ઉદાહરણમાં પર એક નજર અહીં લો, જે ફક્ત સી કોડ કે જે તળિયે મુખ્ય કાર્ય છે
કે જે કાર્ય foo કહે છે. અને તે શું foo માટે પસાર થાય છે?
એક દલીલ [વિદ્યાર્થી]. >> [Malan] એક દલીલ.
તેથી argv [1], જે પ્રથમ શબ્દ છે કે જેને વપરાશકર્તા આદેશ વાક્ય પર લખ્યો અર્થ થાય છે
a.out અથવા જે પછી કાર્યક્રમ તરીકે ઓળખાય છે.
તેથી ટોચ પર foo એ ઘરનાં પરચૂરણ કામો * લે. પરંતુ ઘરનાં પરચૂરણ કામો * શું માત્ર છે? >> [વિદ્યાર્થી] એક સ્ટ્રિંગ.
[Malan] એક શબ્દમાળા તેથી, ત્યાં નવી કંઇ અહીં છે.
શબ્દમાળા કે આપખુદ બાર છે કહેવાય રહ્યું છે.
આ અહીં લીટી માં, ચાર કેચ [12]; અર્ધ તકનીકી ઇંગલિશ જેવું માં, આ લીટી શું કરે છે?
[વિદ્યાર્થી] એક એરે - ઓફ >> અરે! >> [વિદ્યાર્થી] અક્ષરો. >> અક્ષરો.
મને 12 અક્ષરો ઝાકઝમાળ આપો. તેથી અમે એક બફર આ કૉલ શકે છે.
તે ટેકનિકલી કેચ કહેવાય છે, પરંતુ પ્રોગ્રામિંગ એક બફર માત્ર જગ્યા સમૂહ અર્થ થાય છે
કે તમે અમુક સામગ્રી સાઇન મૂકી શકો છો
પછી છેલ્લે memcpy અમે પહેલાં વપરાય છે, કર્યા છે, પરંતુ તમે કદાચ ધારી તે શું કરે છે કરી શકો છો.
તે મેમરી નકલ કરે છે. તે શું કરે છે?
તે દેખીતી રીતે બાધ નકલ કરે છે, તેના ઇનપુટ, સી માં પણ માત્ર બાર નોંધાયો નહીં.
પરંતુ અહીં એક ભૂલ છે. >> [વિદ્યાર્થી] તમે sizeof અક્ષર જરૂર છે. ઠીક છે. >>
ટેક્નિકલ, અમે ખરેખર strlen કરવું (બાર) કરીશું * sizeof (કોલસો)). કે સાચું છે.
પરંતુ ખરાબ અહીં કિસ્સામાં, ચાલો કે that's ધારે -
ઠીક છે. તો પછી ત્યાં બે ભૂલો છે.
તેથી (કોલસો) sizeof);
ચાલો આ થોડું વિશાળ બનાવે છે.
તેથી હવે ત્યાં હજી પણ ભૂલ, કે જે શું છે શું છે? >> [અશ્રાવ્ય વિદ્યાર્થી જવાબ]
શું માટે તપાસો? >> [વિદ્યાર્થી] NULL માટે તપાસો.
અમે સામાન્ય રીતે NULL માટે ચકાસે જોઈએ કારણ કે ખરાબ વસ્તુઓ થાય છે
જ્યારે તમારા નિર્દેશક NULL છે કારણ કે તમે અંત ત્યાં જઈને શકે છે,
અને તમે ક્યારેય નહીં કરી શકે તે તારો ઓપરેટર સાથે dereferencing દ્વારા નલ જઈને કરીશું.
જેથી સારી છે. અને બીજું શું આપણે કરી રહ્યા છે? તાર્કિક, ત્યાં ભૂલ અહીં પણ છે.
[વિદ્યાર્થી] તપાસો જો argc => માટે 2 છે.
તેથી તપાસ જો argc> = 2 છે. ઠીક છે, જેથી આ કાર્યક્રમ ત્રણ ભૂલો અહીં છે.
હવે અમે જો વપરાશકર્તા ખરેખર argv માં કંઈપણ માં લખ્યો ચકાસણી કરી રહ્યા છીએ. [1] ગુડ.
તેથી ત્રીજા ભૂલ શું છે? યાહ. >> [વિદ્યાર્થી] સી પ્રયત્ન પૂરતી મોટી નથી શકે છે.
ગુડ. અમે એક દૃશ્ય ચકાસાયેલ.
અમે સર્વથા ચકાસાયેલ નથી વધુ મેમરી કરતાં બાર લંબાઈ ઓળંગાઈ જશે પણ નકલ કરશો નહિં.
તેથી શબ્દમાળા જો માં લખ્યો વપરાશકર્તા 10 અક્ષરો લાંબો છે,
આ કહેતા છે માત્ર 10 અક્ષરો નકલ કરો. અને તે ઠીક છે.
પરંતુ જો વપરાશકર્તા શબ્દ 20-અક્ષર જેવા પ્રોમ્પ્ટ પર એક શબ્દ માં લખ્યો?
આ પટ્ટી માંથી શું માં 20 અક્ષરો નકલ કહેતા છે?
સી, અન્યથા અમારા બફર તરીકે ઓળખાય છે, જેનો અર્થ છે તમે હમણાં જ માહિતી લખ્યું હતું
8 બાઇટ સ્થળો કે જે તમે પોતાની ન કરવું,
અને તમે તેમને સૂઝ કે તમે ફાળવવામાં તેમને ક્યારેય નહીં માલિકી નથી.
તેથી આ એ છે જે સામાન્ય રીતે બફર ઓવરફ્લો હુમલો અથવા બફર રોળાઈ હુમલા તરીકે ઓળખાય છે.
અને તે અર્થમાં હુમલો છે કે જો વપરાશકર્તા અથવા કાર્યક્રમ છે કે જે તમારા કાર્ય ફોન છે
આ દ્વેષપૂર્વક કરવું, શું ખરેખર આગળ શું થશે વાસ્તવમાં ખૂબ ખરાબ હોઇ શકે છે.
>> તેથી આપણે આ ચિત્ર પર એક નજર અહીં લે છે.
આ ચિત્ર મેમરી તમારા સ્ટેક રજૂ કરે છે.
જણાવ્યું હતું કે દર વખતે તમે એક કાર્ય કૉલ તમે સ્ટેક પર આ થોડો ફ્રેમ વિચાર
અને અન્ય પછી અને પછી બીજા અને અન્ય.
અને આમ અત્યાર સુધી, અમે હમણાં જ પ્રકારની કરેલા આ લંબચોરસ તરીકે શૂન્યમનસ્ક
ક્યાં તો બોર્ડ પર અથવા અહીં સ્ક્રીન પર.
પરંતુ જો આપણે તે લંબચોરસ એક, જ્યારે તમે કાર્ય foo કૉલ પર ઝૂમ,
તે તારણ કે એ ફ્રેમ ને સ્ટેક અંદર પર વધુ કે લંબચોરસ માં છે
કરતાં માત્ર એક્સ અને વાય અને a અને b, જેમ કે અમારી સ્વેપ વિશે વાત ન હતી.
તે તારણ કે ત્યાં અમુક નીચી કક્ષાની વિગતો છે, તેમની વચ્ચે રીટર્ન સરનામું.
તેથી તે તારણ જ્યારે મુખ્ય foo કહે છે, મુખ્ય foo જાણ છે
ની મુખ્ય સરનામા શું કોમ્પ્યુટરની મેમરીમાં છે
અન્યથા, કારણ તરીકે foo જલદી આ અહીં કિસ્સામાં ચલાવી કરવામાં આવે છે,
એકવાર તમે foo ઓવરને અંતે આ બંધ સર્પાકાર તાણવું પહોંચે છે,
કેવી રીતે હેક foo જ્યાં કાર્યક્રમ અંકુશ પર જાઓ માનવામાં આવે છે ખબર નથી?
તે તારણ કે જે પ્રશ્નનો જવાબ આ લાલ અહીં લંબચોરસ છે.
આ એક નિર્દેશક રજૂ કરે છે, અને તે કમ્પ્યુટર પર છે કામચલાઉ સ્ટોર
સ્ટેક કહેવાતા પર મુખ્ય ના જેથી તરીકે foo જલદી સરનામા ચલાવવા કરવામાં આવે છે,
કમ્પ્યુટર જ્યાં અને મુખ્ય માં લીટી શું પાછળ જવા માટે જાણે છે.
સાચવેલા ફ્રેમ નિર્દેશક આ જ સંબંધિત છે.
ચાર * અહીં બાર શું પ્રતિનિધિત્વ?
હવે આ વાદળી સેગમેન્ટમાં અહીં માતાનો foo ફ્રેમ હોય છે. બાર શું છે?
બાર ફક્ત foo કામ કરવા માટે દલીલ છે.
તેથી હવે અમે પરિચિત ચિત્ર જેવું અંતે પાછા આવ્યા.
ત્યાં વધુ અને સ્ક્રીન પર સામગ્રી વધુ વિક્ષેપોમાં છે,
પરંતુ આ આછો વાદળી સેગમેન્ટમાં માત્ર છે અમે શું chalkboard પર ચિત્રકામ કર્યું છે
સ્વેપ કંઈક છે. કે foo અંતર્ગત ફ્રેમ હોય છે.
અને તેને જ વસ્તુ હમણાં બાર છે, કે જે આ પરિમાણ છે.
પરંતુ બીજું શું સ્ટેક આ અહીં કોડ મુજબ રહેવું જોઈએ?
[વિદ્યાર્થી] ઘરનાં પરચૂરણ કામો કો. [12] >> [Malan] ઘરનાં પરચૂરણ કામો કો. [12]
અમે પણ મેમરી 12 ચોરસ એક કેચ કહેવાય ચલ ફાળવવામાં જોઈ શકવા જોઈએ,
અને ખરેખર અમે સ્ક્રીન પર નથી.
એકદમ ટોચ છે કૈચ પછી, અને આ રેખાકૃતિ લેખક [0]
નહોતી સંતાપ નથી, આ વર્ગની તમામ ચિત્રકામ પરંતુ ખરેખર છે 12 ​​ત્યાં
કારણ કે જો તમે નીચે જમણા ખૂણે જુઓ, કો [11] જો તમે 0 થી ગણતરી 12 જેવા બાઇટ છે.
પરંતુ અહીં સમસ્યા છે.
જે દિશામાં કેચ વધતી જાય છે?
સૉર્ટ કરો નીચે ટોચ જો તે ટોચ પર શરૂ થાય છે અને નીચે સુધી વિકાસ પામે છે.
તે જેમ આપણે આપણી જાતને ખૂબ રનવે બાકી અહીં બધા લાગતું નથી.
અમે પ્રકારની એક ખૂણામાં આવી છે જાતને પેઇન્ટિંગ,
અને તે કેચ [11] બાર છે, કે જે સાચવેલા ફ્રેમ નિર્દેશક સામે અધિકાર છે સામે અધિકાર છે,
જે રીટર્ન સરનામું સામે અધિકાર છે. કોઈ વધુ ખંડ છે.
તેથી સૂચિતાર્થ શું પછી છે જો તમે સ્ક્રૂ
અને તમે એક બફર 12-બાઇટ માં 20 બાઇટ્સ reading પ્રયાસ?
તે 8 વધારાના બાઇટ્સ પર જાઓ જ્યાં જવું છે? >> [વિદ્યાર્થી] - ઇનસાઇડ
બાકીનું બધું અંદર છે, કે જે અમુક મહત્વપૂર્ણ સુપર છે.
અને સૌથી મહત્વની વસ્તુ, સંભવિત, લાલ બોક્સ ત્યાં છે, રીટર્ન સરનામું,
કારણ કે ધારો કે તમે ક્યાં તો અકસ્માતે કે adversarially તે 4 બાઇટ્સ પર ફરીથી લખી,
માત્ર કચરો છે, પરંતુ એક નંબર સાથે નિર્દેશક સરનામું,
કે મેમરી એક વાસ્તવિક સરનામા પ્રતિનિધિત્વ થાય છે.
ઉદભવે શું તાર્કિક રીતે? >> [વિદ્યાર્થી] કાર્ય માટે એક અલગ સ્થાન પર પાછા જઈ રહ્યું છે.
બરાબર.
જ્યારે foo વળતર અને હિટ સર્પાકાર તાણવું કે, આ કાર્યક્રમ આગળ વધવા માટે થઇ રહ્યું છે
મુખ્ય પરત ન હોય, તો તે સરનામા ગમે કે લાલ બોક્સમાં છે પાછા જવાનું છે.
>> Circumventing સોફ્ટવેર રજીસ્ટ્રેશન કિસ્સામાં,
જો સરનામા સાથે રહી પરત છે કાર્ય કરે છે જે સામાન્ય રીતે કહેવાય નહીં હોય
પછી તમે સોફ્ટવેર માટે ચૂકવણી કરી છે અને તમારી નોંધણી કોડ ઇનપુટ?
તમે કોમ્પ્યુટર યુક્તિ ઓફ જઈને અહીં પ્રવેશ સૉર્ટ પરંતુ તેના બદલે અહીં જઈને કરી શકો છો.
અથવા જો તમે ખરેખર છો હોંશિયારીથી, વિરોધી ખરેખર કીબોર્ડ પર ટાઈપ કરી શકો છો, હમણાં પૂરતું,
વાસ્તવિક, એક શબ્દ ન બોલ્યા 20 ન અક્ષરો છે, પરંતુ કદાચ તે અથવા તેણી ખરેખર માં પ્રકારો
કેટલાક અક્ષરો કોડ પ્રતિનિધિત્વ કરે છે.
અને તે માટે સી કોડ નથી ચાલી રહ્યું છે, તે ખરેખર અક્ષરો જ હશે
કે દ્વિસંગી મશીન કોડ છે, અને 0s 1 સે પ્રતિનિધિત્વ કરે છે.
પરંતુ કદાચ તેઓ પૂરતી હોંશિયાર છે કે શું કરશો,
માટે કોઈક તો GetString પ્રોમ્પ્ટ કંઈક છે જે અનિવાર્યપણે સંકલિત કોડ છે પેસ્ટ,
અને છેલ્લા 4 બાઇટ્સ કે વળતર સરનામા પર ફરીથી લખી.
અને સરનામા શું કે ઇનપુટ શું કરે છે?
તે વાસ્તવમાં આ લાલ લંબચોરસ એ બફર પ્રથમ બાઇટ ની સરનામું સંગ્રહ કરે છે.
જેથી તમે ખરેખર હોંશિયાર હોય છે, અને આ અને ખરાબ લોકો માટે ટ્રાયલ ભૂલ ઘણો બહાર ત્યાં છે,
પરંતુ જો તમે બહાર આકૃતિ મોટું કેવી રીતે આ બફર છે
જેમ કે ઇનપુટ છેલ્લા થોડા બાઇટ્સ તમે કાર્યક્રમ માટે પૂરી પાડે છે
તમારા બફર શરૂઆત ના સરનામા માટે સમકક્ષ હોઈ થાય, તો તમે આ કરી શકો છો.
જો અમે સામાન્ય રીતે હેલ્લો અને 0 \ કહે છે કે શું આ બફર માં પૂર્ણ થાય છે.
પરંતુ જો આપણે વધુ હોશિયાર છો અને અમે અમે શું સામાન્ય હુમલો કોડ કહી શકશો કે બફર ભરી -
એએએ, હુમલો, હુમલો, હુમલો - જ્યાં આ કંઇક ખરાબ કંઈક કરે છે,
શું થાય છે જો તમે ખરેખર છો હોંશિયારીથી, તમે આ કરી શકો છો.
80, C0, 35, 08 - એ લાલ અહીં બૉક્સમાં ક્રમાંકોની શ્રેણી છે.
નોંધ કરો કે કે નંબર છે કે જે અહીં મેળ ખાય છે.
તે રિવર્સ ક્રમમાં છે, પરંતુ તે અન્ય કેટલાક સમય પર વધારે.
નોંધ કરો કે આ વળતર સરનામા ઇરાદાપૂર્વક બદલાઈ ગયેલ છે
આ સરનામાંને જેટલી અહીં, મુખ્ય નથી સરનામું.
તેથી જો ખરાબ વ્યક્તિ સુપર સ્માર્ટ છે, તે અથવા તેણી સમાવેશ થાય છે કે હુમલો કોડ થઇ રહ્યું છે
કંઈક જેવા વપરાશકર્તાના બધી ફાઈલોને કાઢી શકો અથવા પાસવર્ડો નકલ
અથવા વપરાશકર્તા ખાતું બનાવવું કે હું પછી લૉગ ઇન કરી શકો છો - કંઈપણ બધા છે.
>> અને આ બંને જોખમ અને સી શક્તિ છે
કારણ કે તમે પોઇંટરો મારફતે મેમરી વપરાશ હોય છે
અને તમે તેથી એક કમ્પ્યુટર મેમરીમાં કંઈપણ તમે ઇચ્છો લખી શકો છો,
તમે કરી શકો છો કમ્પ્યુટર કંઈપણ તમે કરવા માંગો છો કરવું
દ્વારા ફક્ત તેની પોતાની મેમરી જગ્યા અંદર એવું આસપાસ કૂદી.
અને તેથી આ દિવસ માટે ઘણા કાર્યક્રમો અને ઘણા વેબસાઇટ્સ કે ગડબડ છે
આ લાભ લેતા લોકો માટે ઉકાળીને પ્રમાણ ઘટાડવું.
અને આ એક સુપર વ્યવહારદક્ષ હુમલો જેવા જણાય છે, પણ શકે તે હંમેશા કે માર્ગ શરૂ થતું નથી.
આ વાસ્તવિકતા એ છે કે ખરાબ લોકો ખાસ કરીને કરશે શું છે,
શું તે આદેશ વાક્ય પર એક કાર્યક્રમ અથવા GUI કાર્યક્રમ અથવા વેબસાઇટ છે,
તમે હમણાં નોનસેન્સ પૂરી કરવાનું શરૂ કરો.
તમે શોધ ક્ષેત્ર અને Enter હિટ એક ખરેખર મોટી શબ્દ લખો,
અને તમે તે જોવા માટે જો વેબસાઇટ ક્રેશ રાહ
અથવા તમે એ જોવા માટે જો કાર્યક્રમ કેટલાક ભૂલ સંદેશો મેનીફેસ્ટ રાહ
કારણ કે જો તમે ખરાબ વ્યક્તિ તરીકે નસીબદાર વિચાર અને તમને કેટલીક ઉન્મત્ત ઇનપુટ પૂરું પાડવા
કે કાર્યક્રમ, તેનો અર્થ એ કે એ પ્રોગ્રામર તમારા ખરાબ વર્તન પૂર્વાનુમાન ન હતી ક્રેશ,
જેનો અર્થ છે કે તમે કદાચ આ કરી શકો છો પર્યાપ્ત પ્રયત્ન, પર્યાપ્ત અજમાયશ અને ભૂલની સાથે,
બહાર આકૃતિ કેવી રીતે વધુ ચોક્કસ હુમલો વિશે છે.
જેથી ખૂબ સુરક્ષા એક ભાગ માત્ર આ હુમલા એકસાથે ન અવગણી છે
પરંતુ તેમને શોધવા અને ખરેખર લોગ્સ પર નજર
અને જોયા ઉન્મત્ત ઇનપુટ્સ શું તમારી વેબસાઇટ પર ટાઇપ કરવામાં આવતું લોકો હોય છે,
શોધ શબ્દો શું તમારી વેબસાઇટ પર લોકો લખ્યો છે
કેટલાક બફર વહેતું આશા છે.
અને આ શું સરળ મૂળભૂતો બધા નીચે ઉકળે ઝાકઝમાળ છે
અને તે શું માટે ફાળવો અને મેમરીનો ઉપયોગ અર્થ નથી.
>> પછી પણ આ એ છે કે સંબંધિત.
ચાલો માત્ર એક હાર્ડ ડ્રાઈવ ની અંદર હજુ સુધી ફરી ચમકારો કરવો.
તમે એક અથવા બે સપ્તાહ પહેલા થી યાદ છે કે જ્યારે તમે તમારા રીસાઇકલ બિન અથવા કચરો કરી શકો છો ફાઈલો ખેંચો
શું થાય છે? >> [વિદ્યાર્થી] કંઈ નથી. >> ચોક્કસ કશું, અધિકાર?
આખરે જો તમે ડિસ્ક જગ્યા પર ચલાવવા માટે,
વિન્ડોઝ અથવા મેક ઓએસ તમે ફાઇલો માટે કાઢી નાંખવા શરૂ થશે.
પરંતુ જો તમે ત્યાં કંઈક ખેંચો, તે તમામ સલામત નથી.
તમારા રૂમમેટ અથવા મિત્ર અથવા કુટુંબના સભ્ય કરવું બધા ડબલ ક્લિક કરો અને છે, વોઇલા Query,
ત્યાં બધા ઉપરછલ્લા ફાઈલો કે જે તમે કાઢી નાંખવા પ્રયાસ કર્યો છે.
અમને મોટા ભાગના ઓછામાં ઓછું જાણીએ છીએ કે તમે જમણી ક્લિક કરો અથવા ક્લિક કરો નિયંત્રિત હોય છે
અને ખાલી અથવા જેમ કચરો કંઈક.
પણ પછી તે તદ્દન યુક્તિ કરતું નથી
કારણ કે શું થાય છે જ્યારે તમે તમારી હાર્ડ ડ્રાઇવ પર ફાઇલ હોય
કે અમુક વર્ડ દસ્તાવેજ અથવા અમુક JPEG રજૂ કરે છે, અને આ તમારી હાર્ડ ડ્રાઈવ રજૂ કરે છે,
અને ચાલો કહેવું આ અહીં sliver કે ફાઈલ રજૂ કરે છે,
અને તે 0s અને 1 સે સંપૂર્ણ જથ્થો બનેલા છે.
ત્યારે શું તમે ટ્રૅશમાં છે કે ફાઈલ માત્ર નથી ખેંચો થાય છે અથવા બિન રિસાયકલ કરી શકો છો
પણ તે ખાલી? કશું ના ક્રમમાં ગોઠવો.
તે સંપૂર્ણપણે કશું હવે નથી.
હવે તે માત્ર કશું જ નથી કારણ કે થોડા કંઈક આ ટેબલ સ્વરૂપમાં થાય છે.
તેથી ત્યાં એક કમ્પ્યુટર મેમરી ની અંદર ડેટાબેઝ અથવા ટેબલ કેટલાક પ્રકારની છે
કે અનિવાર્યપણે ફાઈલો માટે એક સ્તંભ 'નામો અને ફાઈલો માટે એક સ્તંભ' સ્થાન ધરાવે છે,
આ 123 સ્થાન, ફક્ત રેન્ડમ નંબર જ્યાં હોઈ શકે છે.
તેથી અમે x.jpeg અને 123 સ્થાન કંઈક હોય શકે છે.
શું પછી જ્યારે તમે વાસ્તવમાં તમારા કચરો ખાલી?
કે દૂર જાય છે.
પરંતુ દૂર જવા નથી શું 0s અને 1 સે છે.
>> તેથી શું પછી pset4 જોડાણ છે?
વેલ, pset4 સાથે, માત્ર કારણ કે અમે આકસ્મિક કોમ્પેક્ટ ફ્લેશ કાર્ડ દૂર કર્યા છે
ખરાબ નસીબ દ્વારા આ ફોટા બધા અથવા ફક્ત કારણ કે હતી દૂષિત બની હતી
નથી તેનો અર્થ નથી કે 0s અને 1 સે હજુ પણ ત્યાં નથી.
કદાચ થોડા કારણ કે કંઈક બગડી ગયું છે ખોવાઈ જાય છે
અર્થમાં કે અમુક 0s 1 સે બની હતી અને 1 સે 0s બની.
ખરાબ વસ્તુઓ બગડેલ સોફ્ટવેર અથવા હાર્ડવેર ખામીયુક્ત કારણે થાય છે.
પરંતુ તે બિટ્સ ઘણા, કદાચ તેમને 100 પણ%, હજી પણ ત્યાં હોય છે.
તે ફક્ત કમ્પ્યૂટર અથવા કૅમેરા જ્યાં JPEG1 શરૂ ખબર નથી
અને JPEG2 જ્યાં શરૂ કરી હતી.
પરંતુ તમે જો, તો પ્રોગ્રામર, સમજશકિત એક બીટ જ્યાં તે JPEGs છે સાથે ખબર
અથવા તેઓ જેમ દેખાય છે શું જેથી તમે 0s અને 1 સે અને કહે JPEG, JPEG વિશ્લેષણ કરી શકે છે,
તમે અનિવાર્યપણે માટે માત્ર એક સાથે એક પ્રોગ્રામ લખવા કરી શકો છો અથવા જ્યારે લૂપ
કે જે તે ફાઈલો દરેક એક ધક્કામાંથી.
તેથી પાઠ પછી સુરક્ષિત તમારી ફાઇલોને ભૂંસી નાખી શરૂ છે
જો તમે આ સંપૂર્ણપણે ટાળવા માંગો છો. હા.
>> [વિદ્યાર્થી] કેવી રીતે આવે છે તેને તમારા કમ્પ્યુટર પર કહે છે
કે તમને વધુ મેમરી કરતાં તમે પહેલાં કર્યું છે?
વધુ મેમરી કરતાં તમે પહેલાં કર્યું છે - >> [વિદ્યાર્થી] વધુ ઉપલબ્ધ મેમરી.
ઓહ. પ્રશ્ન સારું.
તેથી પછી શા માટે ટ્રૅશ ખાલી પછી તમારા કમ્પ્યુટર તમને કહી નથી
કે તમને વધુ મુક્ત જગ્યા કરતાં તમે પહેલાં કર્યું છે?
ટૂંકમાં, કારણ કે તે પડેલો છે.
વધુ તકનીકી, તમે વધુ જગ્યા હોય છે કારણ કે હવે તમે કહ્યું છે
તમે અન્ય સામગ્રી મૂકવામાં જ્યાં તે ફાઇલ એક વખત થઇ હતી.
પરંતુ તેનો અર્થ એ નથી કે બિટ્સ દૂર જવું છે,
અને એનો અર્થ એ નથી કે બિટ્સ તમામ 0s માટે બદલાઈ રહ્યાં છે, હમણાં પૂરતું,
તમારી સુરક્ષા માટે.
તેથી વિપરીત, જો તમે સુરક્ષિત રીતે ફાઈલો ભૂંસવું કે ભૌતિક ઉપકરણ નાશ કરે છે,
કે ખરેખર કે આસપાસ માત્ર ક્યારેક માર્ગ છે.
>> તેથી અમે નોંધ અર્ધ ડરામણી પર શા માટે છોડી નથી, અને અમે તમને સોમવાર પર જોશે.
[વધાવી]
>> [CS50.TV]