 بسم اللہ الرحمن الرحيم، آج ہم موڈیول 30 دسکریں گے، موڈیول 30 ہے فائل پوائنٹرز جو لوگ فائلز کے ساتھ کام کرتے ہیں ان کو اس چیز کا بڑی اچھی طرح سے پتہو گا جب بھی آپ کو ایک فائل کریٹ کرتے ہیں جس طرح سی کے اندر آپ کے پاس کریٹ فائل کا ایپی آئی ہے اس ایپی آئی کو use کر کے اگر آپ ایک فائل کریٹ کرتے ہیں تو جو فائل پوائنٹر ہے وہ ہمیشہ start of the فائل پے پوائنٹ کر رہا ہوتا اور جو جو آپ اس فائل کو read یا write کریں گے read فائل کے مدہ سے، write فائل کے مدہ سے فائل پوائنٹر جو وہ آگے پیچھے move کرنا شروع کر دے گا ہر سبسوکنٹ اپریشن کے اوپر فائل پوائنٹر کی position change ہوگی لیکن اگر آپ رینڈم لی کسی فائل کو read کرنا جاتے ہیں کسی بھی location سے read کرنا جاتے ہیں تو آپ کو فائل پوائنٹر کی position کو change کرنے کی بھی ضرورت پڑے گی آپ کو سرٹنلی ایسی API جو فائل پوائنٹر کی position کو change کر سکیں کیونکہ جب بھی آپ read یا write کریں گے وہ کہاں سے read ہوگا جہاں پہ فائل پوائنٹر پوائنٹ کرا رہا تو یہ کام کرنے کے لیے c کے اندر بڑی اچھی ایک API available ہے set file pointer اور set file pointer ex یہ دو API's ہیں جنگی مدہ سے آپ فائل پوائنٹر کی position جو ہے وہ set کر سکتے ہیں set file pointer جو ہے اس کا use تھوڑا سا awkward ہے اور set file pointer ex جو ہے اس کا use جو ہے وہ تھوڑا سا اسا آن ہے ہم دونوں API's کو Discuss کریں گے یہاں بھی آپ دیکھ سکتے ہیں set file pointer کی API set file pointer کی API جو ہے first parameter لیڈی ہے handle to a file جو بھی فائل جس کیا آپ نے pointer کی position کو چینج کرنا ہے of course وہ فائل اپنی ہوگی اس کا handle آپ نے اس کو پاس کرنا second parameter that is distance to move یہ دیکھیں یہ parameter long یعنی کہ یہ 32 bit کا 32 bit تک کیاگر فائل ہے یعنی کہ 4GB تک کیاگر فائل ہے اس کے لیے تو ٹیک ہے لیکن اگر 4GB سے بڑی فائل ہے ntfs فائل ہے اور 4GB سے بڑی فائل ہے تو یہ نفت نہیں ہے آپ کو اور بھی ایک اور ویلیو سپیفائے کرنی بڑے گے اس کے لیے next ہماری فیل ہے یہ فیل جو ہے this is a pointer to a long یہ long نہیں ہے this is a pointer to a long اور اس کی نام دیکھیں کیا رکھا ہے lp distance to move high جسنا آپ نے move کرنا یہ اس کا higher double word ہے distance to move اس کا lower double word ہے اور distance to move high جو ہے اس کا higher double word ہے اور اس کا یہ pointer یہاں پر پڑاو ہے وہ value as such نہیں ہے اس کا pointer یہاں پر پڑاو ہے اور کس طریقے سے move کرنا ہے اس کے لیے آپ کے پاس تین option ہوتی ہیں تو وہ آپ سپیسفائے کریں گے dw move method کی اندر یہ جو تین options ہیں ان case اگر آپ 64 bit کی آپ کی file space ہے tour is to the power 64 کی آپ کی file space ہے آپ نے جو distance move کرنا ہے وہ 32 bit کی اندر نہیں سپیسفائے کیا جا سکتا ہے آپ کو اسی زیادہ bits کی ضرورت ہے تو آپ l distance to move کی اندر اس کا lower 32 bits رکھیں گے اور ایک اور long کی اندر آپ اس کا higher double word رکھیں گے اور اس long کا جو point ہے آپ lp distance to move high کی اندر place کر دیں گے اور آپ نے جس طرح سے move کرنا ہے file کو file pointer کو move کرنا ہے اس کا move تکنی کی a move method جو وہ آپ نے سپیسفائے کرنا ہے اس کے آپ لیے آپ کے پاس تین options ہیں file begin file current اور file end file begin کا مطلب ہے جو file pointer ہے وہ move کرے گا اتنے bytes with respect to the start of file بالکل جو پہلہ byte ہے اس کی respect سے وہ اتنے bytes آگے move کر جائے گا current position file current رکھتے ہیں تو وہ current position کی لیہاں سے اتنے bytes آگے move کر جائے گا اور file end رکھتے ہیں تو اس کس کے اندر end of file کی لیہاں سے وہ اتنے bytes move کرے گا