 بسم اللہ الرحمن الرحیم، آج ہم موڈیول 21 کو دسکس کریں گے موڈیول 21 ہے سٹینڈ آیو دوائیسیز کے اوپر وندوز جو ہے وہ بسکلی تین کسم کے سٹینڈ آیو دوائیسیز use کرتے ہیں عام طور پہ اوپریڈنگ سسٹم کی زبان میں جو سٹینڈ آیو دوائیسیز اس کو کنسول کا آجاتا ہے تو تین کسم کے سٹینڈ آیو دوائیسیز ہیں ایک انپورٹ ایک اوپرٹ اور تیسرہ جو وندوز کے اندرہ ہے اِن் افجار راستہ ہیں جب کانی انپرت پاپریڈتنگ پرacebildung which waited for ڈوائیس پر curls shouting اللہ أندره ترحیدavier لیکن آپ نے یہ نہیں بتایا کہ کس دوائی سے گٹ کرنا تو بای دفولٹ سٹانڈڈ اینپور دوائی سے گٹ ہوتا ہے تو یہ کنسول کا مطلب ہے جتنے بھی یہ دوائیسز ہے سٹانڈڈ آئو دوائیسز اگر آپ نے ان کو حاندل کرنا ہے ان سے دیتا گٹ کرنا ہے ان میں دیتا پلس کرنا ہے تو وندوز کے اندر بھی of course ان کو آپ حاندل کر سکتے ہیں لیکن وندوز کے اندر ان کو مناپلیٹ کرنے کے لئے آپ کو کیا چیز چاہی ہو کہ ہار چیز کو مناپلیٹ کرنے کے لئے ہار رسورس کو مناپلیٹ کرنے کے لئے وندوز میں ہمیں حاندلز کی ضرورتا ہے تو ان کے بھی حاندلز ہوں گے یہاں میں ہم دیکھتے ہیں کہ ہم ان سٹانڈڈ انپور دوائیسز کا حاندل کیسے گٹ کر سکتے ہیں تو یہاں میں ہمارے سامنے ایک API ہے get standard handle اس کے اندر آپ اپنا جو بھی جس کسی بھی حاندل کیا آپ نے API گٹ کرنی ہے جس کسی بھی دوائیس کیا آپ نے حاندل گٹ کرنا اس دوائیس کو آپ سپیسفائے کرتے ہیں اور یہ آپ کو ایک حاندل ریٹن کرتا ہے to that device اگر تو حاندل نہیں available کسی کسم کا ایرر ہے تو یہ آپ کو value ریٹن کرے گا invalid handle value جو ایدر گئے بنا ہے windows.h کے اندر defined ہے اور اگر آپ اس کو بار بار call کریں for the same handle تو ہمیشہاں یہ آپ کو وہی حاندل ریٹن کرے گا کیونکہ جو standard input devices ہے وہ ایک ہے تو اگر آپ نے standard input device کا حاندل گٹ کیا تو آپ next time پھر سے گٹ کرتے ہیں تو آپ کو اسی دوائیس کی حاندل ملے گا اور اگر آپ حاندل کو کنی close کر دیتے ہیں تو جس process نے اس حاندل کو close کیا اس process کے لیے وہ device آگے future میں accessible نہیں ہوگا یعنی کہ جب تک وہ process چلتا رہ گا وہ اس دوائیس کو access نہیں کر سکے گا جو std handle جو آپ اس کو value pass کر رہے ہیں وہ تین طرح کیا ہو سکتی ہے کیونکہ تین طرح کیا ہمارے پاس حاندل ہیں ایک input ایک output اور ایک error تو اس کے لیے std input handle std output handle اور std error handle یہ windows.h کے لیے defined ہے آپ یہ value value specify کر سکتے ہیں اور جو کوئی بھی آپ کو حاندل چاہیے آپ اس حاندل کو get کر سکتے ہیں usually windows نے دو کہہلیں کہ environment variables define کیا میں ایک con in اور ایک con out con in جو ہے وہ variable ہے جو کہ console input کے لیے اور con out جو ہے وہ that is the console output تو یہ کہلیں کہ ایک global variables ہیں اور یا buffers ہیں اور in کو access کر کے آپ standard input اور standard output اس کو use کر سکتے ہیں جب آپ standard input handle get کریں گے تو in fact that will be the handle to con in اور جب آپ standard output handle get کریں گے in fact that will be the handle to con out اسی طرح ایک operating systems کے اندر redirection کا concept بھی ہے کہ آپ standard input ہے اس کو redirect بھی کر سکتے ہیں مثل آپ نے keyboard سے انپرٹ نہیں لینی آپ نے کسی file سے انپرٹ لینی ہے تو آپ file کی طرف اس کو redirect کر سکتے ہیں تو redirect کرنے کے لیے set standard handle کا function use ہوا ہے آپ اس سے the standard ہے اس کو change کر سکتے ہیں اس کے اندر آپ specify کریں گے کہ آپ کس چیز کا handle change کرنا چاہ رہے ہیں پہلے پرامیٹر کے اندر آپ standard handle specify کریں گے انپرٹ کے لیے اوپرٹ کے لیے ایرر کے لیے اور پھر actually اس چیز کا handle جس پہ آپ اس کو set کرنا چاہ رہے ہیں یعنی کہ اگر کوئی file ہے اس file کے پر آپ اس کو set کرنا چاہ رہے ہیں تو اس کا آپ handle یہاں پے specify کریں گے اور یہ ایک Boolean return کرتا ہے اگر true ہے تو اس کا مطلب ہے کہ operation was successful اگر false ہے تو اس کا مطلب ہے operation was not successful