[MUSIC ప్లే] ZAMYLA చాన్: తిరిగి యొక్క అధిగమించేందుకు లెట్. తిరిగి బహుశా నా అభిమాన pset, మరియు ప్రధానంగా నేను అనుకుంటున్నాను ఎందుకంటే నిజంగా బాగుంది. సాధారణంగా, మీరు ఒక మెమరీ ఇచ్చిన చేస్తున్నారు కార్డు ఫైలు దీనిలో చిత్రాలు తొలగించబడ్డాయి. కానీ మీరు చూడాలని వాటిని అన్ని తిరిగి ఉంది. OK. కాబట్టి అది నిజంగా ఉత్తేజాన్నిస్తుంది, కానీ ఒక మీరు ఎందుకంటే, చిన్న భయపెట్టడం ఒక ఖాళీ సి ఫైలు మరియు ఇచ్చిన మీరు సైన్ వేస్తారు OK, కాబట్టి యొక్క ఈ బ్రేక్ వీలు నిర్వహించటానికి భాగాలుగా. మీరు తెరవడానికి చెయ్యవచ్చును మెమరీ కార్డ్ ఫైల్. తగినంత సులభం ఉంది. అప్పుడు, ప్రారంభంలో కనుగొనేందుకు ఒక JPG చిత్రం. ఈ జ్ఞాపకశక్తి ఫైళ్ళన్నీ కార్డ్ JPGs ఉంటాయని. అప్పుడు, ఒకసారి మీరు, ప్రారంభం కనుగొనేందుకు మీరు, ఒక కొత్త JPG తెరవడానికి వెళుతున్న , వంటి, ఒక JPG సృష్టించడానికి, మరియు 512 వ్రాయడానికి ఉంది ఒక కొత్త JPG ఉంది వరకు సమయంలో బైట్ దొరకలేదు, మరియు ప్రోగ్రామ్ ముగిసిన, ఒకసారి మీరు ఫైల్ యొక్క ముగింపు గుర్తించి. కాబట్టి మొదటి మొదటి తెరవాలి మెమరీ కార్డ్ ఫైల్. కానీ మీరు ఇప్పటికే ఈ తెలుసు, మరియు ఉంది జరగబోతోంది ఒక ఫైలు I / O ఫంక్షన్ చాలా ఉపయోగకరంగా నిరూపించడానికి. OK. కాబట్టి JPGs ఏవి? మేము ప్రారంభానికి అవసరం ఎందుకంటే. బాగా, JPGs, కేవలం బిట్ పటాలవంటి, బైట్లు కేవలం సన్నివేశాలు ఉన్నాయి. అదృష్టవశాత్తు, ప్రతి JPG గాని మొదలవుతుంది 0xff, 0xd8, 0xff, 0xe0, ఒక క్రమంలో యొక్క బైట్లు, లేదా మరొక బైట్లు క్రమంలో. కాబట్టి ఆ నాలుగు బైట్లు సూచిస్తుంది ఒక JPG ప్రారంభంలో. ఆ రెండు కాంబినేషన్ కంటే ఇతర none నాలుగు బైట్లు. అదృష్టం కొద్దీ మాకు, మరొక నిజానికి మేము పొందగలరు అని ప్రతి JPG ప్రక్క వైపు నిల్వ మెమరీ కార్డ్ న. నేను ఒక నిర్మాణం ప్రాతినిధ్యం చేసిన చిత్రరూపంలో ఈ మెమరీ కార్డ్ ఇక్కడ స్లయిడ్. ఇక్కడ, ప్రతి చదరపు, ప్రతి దీర్ఘచతురస్ర, 512 బైట్లు సూచిస్తుంది, మరియు ఇది మొదలవుతుంది మేము చేయలేని లో ఒక బూడిద తో నిజంగా ఒక JPG కలిగి. కానీ మేము చివరకు హిట్ ఒక స్టార్ తో ఒక బ్లాక్. అని మొదటి నాలుగు బైట్లు అవుట్ వారిలో 512 ఆ రెండు ఒకటి ఒక JPG క్రమాలు ప్రారంభ. మరియు మేము తర్వాత అక్కడ నుండి వెళ్ళి, మరియు ఒక JPG తదుపరి ప్రారంభమవుతుంది, ముగుస్తుంది. మనం ఏ లేదు మధ్య బూడిద స్పేస్. కానీ ఎలా మేము నిజంగా ఈ చదవండి, మరియు లేదు మేము చేయవచ్చు కాబట్టి 512 బైట్లు చదవండి పోలిక మొదటి స్థానంలో? సరే,, తిరిగి fread వినుడు ఇది కలిగిన struct లో పడుతుంది మీరు చదువుతున్న ఆ బైట్లు. కాబట్టి మీరు ఉంచారు చూడాలని అక్కడ ఆ - పరిమాణం, సంఖ్య, ఆపై inpointer మీరు నుండి చదువుతున్న. ఇప్పుడు, మేము ఒక సమయంలో 512 చదవాలనుకుంటున్న, మరియు మేము ఒక బఫర్ లో ఈ నిల్వ మీరు, నేను కాల్ వెళుతున్న. సాధారణంగా, మా వద్ద చూడాలని ఆ 512 బైట్లు లో మరియు ఉన్న విషయాలను, కుడి? మేము గాని మొదటి పోల్చి చూడాలని నాలుగు బైట్లు, లేదా మేము చూడాలని OK, అది చదవడానికి? కాబట్టి అప్పుడు డేటా పాయింటర్ అప్పుడు మీ బఫర్ ఉండేందుకు, మరియు inpointer, బాగా, కేవలం వెళుతున్న మీ మెమరీ కార్డు ఉండాలి. మా మెమరీ కార్డ్ సాధారణ తిరిగి. మేము ఒక సమయంలో 512 బైట్లు చదవండి చూడాలని, ప్రతి 512 బైట్ బ్లాక్ నిల్వ ఒక బఫర్ లోకి పట్టుకొని వాటిని లోకి మేము తెలుసు వరకు, ఆ 512 బైట్లు బఫర్ ఖచ్చితంగా వాటిని చేయడానికి. కాబట్టి ప్రారంభంలో ఏదైనా కాదు, కాబట్టి మేము, బఫర్ చదవండి పోల్చడం మరియు చేస్తాము మేము అది చేయవలసిన అవసరం లేదు. ఆపై, మేము చివరకు ఒక స్టార్ హిట్ మేము చేసిన అనగా బ్లాక్ మా మొదటి JPG దొరకలేదు. కాబట్టి బఫర్ ఇప్పుడు నొక్కి ఆ JPG నుండి బైట్లు. వారు 512 బైట్లు, ఎందుకంటే తదుపరి సమయం ఒక స్టార్ బ్లాక్, కూడా ఉన్నాయి ఆ JPG భాగంగా. మరియు JPGs అక్కడ నుండి నిరంతరంగా మేము తదుపరి JPG హిట్, లో. ఆపై బఫర్ అప్పుడు కలిగి 512 ఆ JPG కోసం బైట్లు, మరియు అందువలన న, మరియు. OK. మీరు మొదటి నటించింది హిట్ ఒకసారి బ్లాక్, మొదటి JPG, మీరు ఎలా నిజానికి, బాగా, ఇది తెరిచి? యొక్క కొత్త JPG తయారు చేద్దాము. ఒక JPG కోసం ఫైల్ వెళ్తున్నారు ఫార్మాట్ ఉంటుంది, సంఖ్య, సంఖ్య, number.jpg, అంటే లో అనే చేస్తున్న అవి కనిపించే లో క్రమంలో, 0 వద్ద ప్రారంభమై. కాబట్టి మొదటి JPG మీరు కనుగొనేందుకు 000.jpg ఉంటుంది. కాబట్టి, బహుశా మంచి ఆలోచన ట్రాక్ మీరు ఇప్పటివరకు అనిపిస్తే ఎన్ని JPGs. కాబట్టి ఆ ఫైల్ పేరు ఉంది. కానీ మీరు నిజంగా ఆ తయారు చెయ్యాలి? Well, మేము ఉపయోగించే చూడాలని ఒక ఫంక్షన్ sprintf అని. Printf పోలి కొద్దిగా, పేరు మీరు, తీగలను కోసం placeholders ఉపయోగించవచ్చు ఈ కేసులో తప్ప, sprintf ముద్రిస్తుంది ప్రస్తుత లోకి ఫైల్ డైరెక్టరీ, కాదు టెర్మినల్కు. OK. కాబట్టి ఇక్కడ మేము టైటిల్ కలిగి చూడండి, నిల్వ చేసే చార్ శ్రేణి ఫలితంగా స్ట్రింగ్, మరియు మేము లో పాస్ ఒక వాస్తవ స్ట్రింగ్ టైటిల్ హోల్డర్, మేము చేసిన ఇష్టం printf తో నేర్చుకున్నాడు. కానీ నేను ఇక్కడ కలిగి ఈ కోడ్ 2.jpg, కాదు 002.JPG ఇస్తుంది. నేను తెలుసుకోవడానికి మీకు చెప్పను ఎలా చేయడానికి హోల్డర్ సవరించడానికి సరైన పేరు. OK. కాబట్టి ఒకసారి మీరు అప్పుడు sprintf'd చేసిన ఇది ఉంది ఎందుకంటే, ఆ ఫైల్ను తెరవడం fopen తో మీ డైరెక్టరీ, ఉపయోగించి టైటిల్, మరియు మీరు అనుకుందో సంసార మోడ్ సైన్ ఫైలు తెరవడానికి కాబట్టి ఇప్పుడు మేము ఒక కొత్త JPG మోపడం చేసిన, ఇప్పుడు మేము ఒక 512 బైట్లు రాయడం ఒక కొత్త JPG కనిపించే వరకు సమయం,. కాబట్టి యొక్క మరొక పరిశీలించి తెలియజేయండి fwrite యొక్క సింటాక్స్. నేను ఈ స్లయిడ్ ఒక చూపిస్తున్న చేస్తున్నాను తెలుసు చాలా, కానీ నేను ఖచ్చితంగా అని నిర్ధారించుకోవాలి మీరు అబ్బాయిలు, చాలా గందరగోళం పొందలేము ఎందుకంటే నేను చాలా సులభం తెలుసు మొదటి మరియు చివరి అప్ కలపాలి వాదన, ముఖ్యంగా. కానీ మీరు నుండి రాస్తున్నాం గుర్తు ఫైలు అవుట్ చిత్రాలను మీ బఫర్. ఇప్పుడు మీరు తెలిసిన ఎలా వ్రాయడం 512 మీరు చేసిన మీ JPG ఫైలు లోకి బైట్లు రూపొందించినవారు, బాగా, మేము ఆ మీరనుకుంటున్నారు మేము ముగింపు చేరుకున్నారు ప్రక్రియ ఒకసారి మా కార్డు, ఎందుకంటే అక్కడ ఉండదు గుర్తించవచ్చు ఏ చిత్రాలు. కాబట్టి యొక్క fread తిరిగి వీడలేదు మరోసారి, నేను హామీ. fread పరిమాణం ఎన్ని అంశాలు తిరిగి, పరిమాణం, విజయవంతంగా లో సిద్ధంగా ఉన్నాయి. ఆదర్శవంతంగా, ఈ మాత్రం ఏమైనా మీరు కుడి, సంఖ్య కోసం లో పాస్? మీరు సంఖ్య చదవడానికి ప్రయత్నిస్తున్న ఎందుకంటే పరిమాణం, పరిమాణం యొక్క మూలకాల. కానీ fread చదవడానికి లేకపొతే మూలకాల సంఖ్య, అది తిరిగి ఉంటాం ఇది విజయవంతంగా చదవండి సంసార సంఖ్య. ఇప్పుడు, గమనించదగ్గ ఒక ముఖ్యమైన విషయం మీరు I / O ను ఉపయోగిస్తే fgetc వంటి ఫంక్షన్, అది కూడా తిరిగి ఉంటాం ఇది విజయవంతంగా చదవండి ఎన్ని అంశాలు. ఈ ఫంక్షన్ గురించి ఉపయోగం ఉంది మీరు ఒక లోపలి విధులు ఉపయోగిస్తే పరిస్థితి, ఇది సమయంలో కూడా అమలు చేస్తాము ఇది ఆ పరిస్థితి గుర్తించడాన్ని కేవలం నిజంగా ఉపయోగకరంగా. కాబట్టి మీరు ఈ పరిస్థితులు ఉంటే సే, ఉంటే fread బఫర్, sizeof DOG, 2, పాయింటర్,, 1 సమానం సమానం నేను చదవడానికి కావలసిన అర్థం సమయంలో 2 కుక్కలు. కానీ fread వంటి బదులుగా 2 1 తిరిగి ఉంటే అంచనా, 2 ఉన్నాయి అంటే కుక్కలు నా ఫైలు మిగిలి, కానీ 1. కానీ 2 తిరిగి ఉంటే, అప్పుడు నేను ఇప్పటికీ నా బఫర్ లోపల ఆ 2 కుక్కలు. కాబట్టి ఇప్పుడు మీరు ఎలా జ్ఞానాన్ని ఇస్తుంది ఫైలు చివర కోసం తనిఖీ, కానీ ఇప్పుడు తర్కం వీలు. ఎలా మేము నిజంగా ముక్క లేదు కలిసి ఈ అంశాల? మేము మా మొదటి JPG హిట్, నుండి మేము JPGs నిల్వ తెలుసు పక్కపక్కన, మేము వరకు రాయడం వస్తుంది మేము కార్డు ఫైలు యొక్క ముగింపు చేరుకోవడానికి. కానీ మేము రాయాలనుకుంటున్నాను లేదు ఏదైనా అప్పుడు వరకు. కనుక ఇది మేము ఉన్నాము అని మాత్రమే, సంబంధించిన ఒక కొత్త JPG ప్రారంభంలో, కానీ లేదో మేము ఇప్పటికే ఒక JPG లేదా అనిపిస్తే. ఇది ఒక కొత్త JPG ప్రారంభంలో అయితే, మేము చేస్తాము మా ప్రస్తుత JPG ఫైలు ఉంటే మూసివేయాలని మీరు అనుకుంటున్నారా మేము ఒక ఓపెన్, మరియు తెరిచిన లోకి రాయడానికి ఒక కొత్త. కొత్త JPG ప్రారంభంలో కాదు, అయితే, మేము అదే JPG ఫైలు ఉంటాం తెరిచి ఆ లోకి వ్రాయండి. మేము ఏ లోకి మా బఫర్ వ్రాయండి చేస్తాము మేము తెరిచిన JPG ఫైలు, అందించిన మేము కోర్సు యొక్క, ఒక ఓపెన్ కలిగి. మేము మా మొదటి JPG దొరకలేదు ఉంటే ఇంకా, మేము ఏదైనా వ్రాయవద్దు. మరియు ఈ విధానంలో మీరు వరకు కొనసాగుతుంది కార్డు ఫైలు ముగింపు చేరుకోవడానికి. చివరకు, మీరు అనుకోవచ్చును మీరు ఏ fclose ఖచ్చితంగా మీరు fopened చేసిన ఫైళ్లు. మీరు సౌకర్యవంతంగా ఉన్నారు భావనలు, కొన్ని పరిశీలించి నేను ఇక్కడ చేర్చాను ఇది pseudocode,. మొదటి, మీరు కార్డు ఫైల్ను తెరవడం మీరు, ఆపై విధానాన్ని పునరుక్తి మీరు చేరుకున్నారు వరకు కార్డ్ ముగింపు. మీరు 512 బైట్లు చదవాలనుకుంటున్న ఒక బఫర్ లోకి. ఆ బఫర్ ఉపయోగించి, మీరు తనిఖీ చెయ్యవచ్చును మీరు ఒక ప్రారంభంలో ఉన్నారు లేదో కొత్త JPG లేదా. మరియు ఆ ప్రశ్నకు సమాధానం రెడీ మీ ఫైలు నిర్వహణ ప్రభావితం - మీరు ఫైళ్లు, ఇది వాటిని మీరు మూసివేయగలను. అప్పుడు, మీరు ఇప్పటికే ఒక JPG కనుగొన్నారు? మీరు ఎలా ఉంచడం జరిగింది ఆ ట్రాక్? అప్పుడు, ఆ ఆధారపడి, మీరు చేస్తాము ప్రస్తుత JPG లోకి వ్రాసే మీరు అన్ని వద్ద వ్రాయుటకు ఓపెన్, లేదా కలిగి, మీరు ఇంకా ఒక JPG దొరకలేదు ఎందుకంటే. చివరగా, ఒకసారి మీరు ముగింపు చేరుకున్నారు ఫైలు, మీరు ఏ దగ్గరగా చెయ్యవచ్చును మీరు తెరిచిన ఫైళ్ళను మిగిలిన. మేము ఇక్కడ చక్కనైన ఉండాలనుకుంటున్నాను. మరియు ఆ, మీరు అన్ని స్వాధీనం చేసిన మెమరీ నుండి తప్పిపోయిన ఫైళ్ళు ఒక అందమైన అద్భుతమైన ఫీట్ ఇది కార్డు,. కాబట్టి వెనుక మీరే తట్టడం. కానీ, ఒక మరింత మూలకం ఉంది పోటీ ఇది pset,. మీరు పొందుతారు ఆ చిత్రాలు అన్ని మీరు స్వాధీనం చేసిన ఉన్నాయి CS50 సిబ్బంది చిత్రాలు. కాబట్టి మీరు ప్రాంగణంలో లేదా ఎక్కడో అయితే సమీపంలో, మీరు తో చిత్రాలు పడుతుంది సిబ్బంది, మరియు కలిగి విభాగం సిబ్బంది అత్యంత చిత్రాలు వారి స్వాధీనం ఫైళ్లు రెడీ ఒక సంభ్రమాన్నికలిగించే బహుమతి పొందండి. ఆ, మీరు పూర్తి చేసిన తిరిగి pset. నా పేరు Zamyla ఉంది, మరియు ఈ CS50 ఉంది.