[موسیقی بجانا] روب Bowden: ہیلو. میں روب ہوں اور دو کے سائز اس مسئلہ کو. تو ہم کے طور پر copy.c کے ساتھ شروع کرنے کے لئے جا رہے ہیں ایک سانچے، لیکن ہم جا رہے ہیں بہت کچھ تبدیلیاں کرنے. اب ہمیں فوری طور پر کر رہے ہیں کو دیکھنے کے ایک اب ہم مزید کی جانچ پڑتال کر رہے ہیں جہاں میں تبدیلی ہمارے rxc اب 3 کے برابر ہے، لیکن نہیں کرتا ہم RC پڑتال کر رہے ہیں 4 کے برابر نہیں ہے. ہم بھی، شامل کرنے کے لئے چاہتے ہیں فائل میں اور باہر فائلوں کے علاوہ یہ ہونے جا رہا ہے جس کے دلائل، F ہم پیمائی کر رہے ہیں جس کے ذریعے عنصر. ہم اس بات کا یقین کر رہے ہیں تو ایک بار، ہم چاہتے ہیں سٹرنگ میں تبدیل کرنے کے اسکین F کا استعمال کرتے ہیں فلوٹ کی argv1. اور ہم نے ذخیرہ کرنے کے لئے جا رہے ہیں اس میں عنصر. یہ اضافی کردار اس بات کا یقین کر رہا ہے ہم اصل میں داخل ہونے نہیں کر رہے ہیں 1.4 اے بی سی کی طرح کچھ کمانڈ لائن پر. اب ہم کچھ عرفی نام پیدا کرنے کے لئے جا رہے ہیں RV2 اور RV3 نہیں ہیں بہت مددگار ثابت کے نام. ہم، اس کے بجائے، فون کرنے کے لئے جا رہے ہیں ان فائل میں اور فائل کو. اب ہم اس بات کو یقینی بنانے کے لئے جا رہے ہیں ہماری عنصر اصل میں درست تھا. تو عنصر سے کم یا برابر ہے صفر یا اس سے زیادہ 100 سے زیادہ، اس کے بعد کے طور پر فی رپورٹ، ہم مسترد کر دینا چاہیے کہ عنصر. ہم اس بات کا یقین کر رہے ہیں تو اب یہ ہم کر سکتے ہیں، اچھا ہے ن فائل کو کھولنے، اور ہم بنانے کے لئے ہے اس کامیابی کے ساتھ کھولا گیا تھا اس بات کا یقین. یہ نہیں کیا تو، کہ، شہوت انگیز null واپس آ جائیں گے. ہم فائل کو کھولنے کے لئے جا رہے ہیں. اور پھر، ہم کرنے کے لئے کی جانچ کرنا چاہتے اس بات کا یقین ہے کہ یہ کامیابی کے ساتھ کھول دیا ہے. اور یہ کامیابی کے ساتھ تو، کھولنے نہیں کیا تو ہم بھی بند کرنے کے لئے اس بات کا یقین کرنے کی ضرورت ہے ن فائل ہے جس میں اصل میں کامیابی کے ساتھ کھولا، ورنہ ہم ایک میموری لیک. تو اب ہم بٹ نقشہ میں پڑھنے کے لئے جا رہے ہیں فائل ہیڈر اور بٹ نقشہ کی معلومات ن فائل سے ہیڈر. ہم اس بات کو یقینی بنانے کے لئے جا رہے ہیں ن فائل کو ایک درست بٹ نقشہ تھا. ٹھیک ہے. تو اب ہم شروع کرنے کے لئے جا رہے ہیں کچھ تبدیلیاں کرنے. ہم کو تبدیل کرنے جا رہے ہیں تو اس کی وجہ چیزیں، ہم سب سے پہلے یاد کرنا چاہتے ہیں ن فائل کے پرانے چوڑائی. ہم پرانے بھرتی کے یاد کرنا چاہتے ہیں اسی حساب کتاب کا استعمال کرتے ہوئے (ن) فائل copy.c. سے اور اب ہم کو تبدیل کرنے جا رہے ہیں بٹ نقشہ معلومات ہیڈر. اور اس طرح ہم چوڑائی دونوں ضرب کر رہے ہیں اور اس کے بعد پہلو کی طرف سے اونچائی کہ ہم سے پیمائی رہے ہیں. ہم تعین کرنے کے لئے جا رہے ہیں فائل کی طرف سے نئے بھرتی نئے چوڑائی کا استعمال کرتے ہوئے. اور ہم نئے تعین کرنے کے لئے جا رہے ہیں تعداد کا استعمال کرتے ہوئے تصویر کا سائز جا رہا ہے جس میں ایک قطار میں شراکت کہ قطار میں پکسلز کی تعداد بار ایک پکسل کے سائز کے علاوہ آخر میں بھرتی کی بائٹس کی تعداد کہ صف کے، اور وہ سب ضرب کہ ہم قطاروں کی تعداد کی طرف سے. تو اس بائٹس کی تعداد ہے ہم ہماری تصویر کے اعداد و شمار میں ہے. Bf.Bfsize اب بڑی تعداد ہونے جا رہا ہے کی ہماری تصویر بیٹا میں شراکت کے علاوہ ہمارے ہیڈر کا سائز. بٹ نقشہ فائل ہیڈر کے تو پلس سائز اور بٹ نقشہ معلومات ہیڈر کا سائز. ٹھیک ہے. تو یہ ہمارا ہیڈر کے لئے ہے. ہم فائل سر لکھیں اور کر سکتے ہیں ہمارے باہر معلومات ہیڈر فائل، اور ہم اچھے ہیں. اب یہ اصل میں شروع کرنے کا وقت ہے پکسل لکھنے باہر فائل کے اعداد و شمار. ہم سائز کے ایک بفر کا اعلان کرنے جا رہے ہیں پرانے چوڑائی آرجیبی تین گنا اضافہ، اور ہم ہیں نامی ایک متغیر کا اعلان کرنے کے لئے جا ہم جا رہے ہیں ہے، جو صف سنن، ابتدائی طور پر منفی 1 کے برابر مقرر کیا. ہم استعمال کرتے ہوئے جا رہے ہیں دیکھیں گے کہ یہ کیا کے ٹریک رکھنے کے لئے ہم اس وقت بھری ہوئی ہے قطار اس بفر میں. ٹھیک ہے. تو اب، سٹینڈرڈ ایڈیشن کے برعکس اس کی بجائے میں iterating کے فائل، ہم ایک پر iterate کرنے جا رہے ہیں باہر فائل میں صف اور اعداد و شمار ہم چاہتے ہیں میں فائل میں جس صف باہر فائل میں اس قطار میں جگہ. تو باہر تمام قطار پر iterating نئی اونچائی استعمال کرتے ہوئے فائل، ہم سب سے پہلے ہو پرانے میں صف کا تعین کرنے کے لئے جا ہم ہیں، جس میں استعمال کرنے کے لئے جا رہے ہیں، فائل اس موجودہ لینے کی طرف سے کیا جا رہا قطار پہلو کی طرف سے تقسیم کیا گیا. تو ہے کہ ہم قطار دینے جا رہا ہے ہم چاہتے ہیں کہ پرانے فائل میں. تو اب، اگر صف سنن برابر نہیں پرانے Y کرتا ہے، ہم صف میں پڑھنے کے لئے جا رہے ہیں ہم اپنے رائج صف بفر میں چاہتے ہیں. تو ہم کس طرح ایسا کرنے کے لئے جا رہے ہیں؟ سب سے پہلے، ہم نے اعداد و شمار کرنے جا رہے ہیں میں اس صف شروع ہوتی ہے پوزیشن اصل فائل. تو اس کی پوزیشن جا رہا ہے ہمارے ہیڈر کی تمام اور ماضی اب ماضی کی عمر Y قطار. اور تو کتنے بائٹس ایک قطار میں ہیں؟ ایک بار پھر، ٹرپل بار آرجیبی کے سائز کے پرانے چوڑائی کے علاوہ پرانے بھرتی، تو یہ ہے ایک قطار میں بائٹس کی تعداد. اور ہم ماضی کی عمر Y قطار چھوڑ کرنا چاہتے ہیں. تو ہم F حاصل کرنے کے لئے جا رہے ہیں اور ہم ہیں سے شروع کرنے کے لئے سیٹ حاصل کا استعمال کرتے ہوئے ایک فائل کے شروع. ہم اس عہدے کے کرنے کی کوشش F کرنے کے لئے جا رہے ہیں فائل میں، ہمیں ڈال ہم چاہتے ہیں صف کے آغاز ہمارے بفر میں پڑھنے کے لئے. ہم صف قائم کرنے کے لئے جا رہے ہیں پرانے Y برابر سنن. تو اب اگر ہم لوپ واپس اور ہم کرنا چاہتے ہیں ہمارے باہر فائل میں یہ ایک ہی قطار کو منتخب کریں، تو ہم پڑھنے کے لئے نہیں جا رہے ہیں اس میں ایک بار پھر بیکار. تو واقعی، قطار سنن ہے صرف ایک اصلاح. آخر میں، ہم میں پڑھنے کے لئے جا رہے ہیں موجودہ صف پرانے چوڑائی آرجیبی تین گنا اضافہ ہم اصل فائل سے چاہتے ہیں. تو اب رائج صف سے پکسلز پر مشتمل ہے ہم چاہتے ہیں کہ اصل فائل باہر فائل میں لکھنے کے. تو اب، صرف مندرجہ بالا کی طرح، کی بجائے پرانی فائل پر iterating، ہمیں ضرورت ہے یہ نئی فائلوں قطاروں پر iterate. ویسے یہاں، اس کی بجائے iterating کے تمام پرانے پکسلز کی ہے کہ رائج قطار میں، ہم تمام iterate کرنا چاہتے ہیں اس میں ہمارے نئے فائل میں پکسلز خاص طور پر قطار. کیوں ہم ایسا کرنا چاہتے ہیں؟ ہم نہیں ہیں کہ یہاں کیونکہ اصل میں ضروری کے تمام کا استعمال کرتے ہوئے اصل فائل میں پکسلز. ہم سکڑ کر رہے ہیں تو، ہم ہو سکتا ہے کیونکہ اصل پکسلز کو چھوڑ کرنا چاہتے ہیں. اور ہم کہ یہ دیکھ - ایکس فیکٹر کی طرف سے تقسیم - ہم Y کا کہنا ہے کہ جہاں مل کر یہاں عکس اعداد و شمار پہلو کی طرف سے تقسیم کیا گیا ہے کہ پرانے Y ویں قطار کے مساوی ہے اس نئی فائل میں Y-ویں قطار. اب ہم میں سے سب کے لکھنے کے لئے جا رہے ہیں پرانے صف سے ان پکسلز ہماری نئی قطار میں. ہم نے کیا ہے ایک بار، ہم کرنے کی ضرورت ہے صرف ہمارے قطار کے آخر میں بھرتی ڈال اور ہم واپس لوپ گے اور کے لئے جاری ہماری نئی فائل میں قطاروں کی سب. آخر میں، ہم اپنے پرانے بند کرنے کی ضرورت ہے ، فائل ہمارے نئے فائل کو بند، اور واپسی صفر سب کچھ ٹھیک چلا گیا. میرا نام روب ہے اور اس وقفہ تھا. [موسیقی بجانا]