 اسم اللہ الرحمن الرحیم، آج ہم موڈیول92 دسکرس کریں گے، موڈیول92 ہے about passing inheritable حنڈلز، پریویس لی ہم نے دسکرس کیا تھا کہ جب آپ پیرنٹ جو ہے وہ چائلڈ پروسس بناتا ہے تو پیرنٹ جو ہے وہ inheritable حنڈلز بھی بنا سکتا ہے جو کہ چائلڈ کو ریڈی لی اویلے بل ہوں گے، پیرنٹ اور چائلڈ دونوں ان حنڈلز کو ایک طرح سے شیر کریں گے، تو یہ inheritable حنڈلز چائلڈ کو کیسے پاس کیا جاتے ہیں، اس کا تریکہ بھی ہم دسکرس کرتے ہیں، صرف inheritable حنڈلز بنا دینا enough نہیں ہے آپ کو جو of course حنڈلز کی ویلیوز ہے ان ویلیوز کو بھی پاس کرنا پڑتا تو دا چائلڈ اس کے کئی تریکہ ہو سکتے ہیں ایک انٹر پروسس کمینکیشن ہو سکتی ہے میسج پاسیں کے تhough کہ جو پیرنٹ ہے وہ چائلڈ کو میسج پاس کرے اور اس میسج کے تhough حنڈل کا حنڈل کی ویلیوز اس میسج کے بڑی کے اندر حنڈل کی ویلیو رکھ دے اور چائلڈ اس میسج کو گڑھ کرے اور وہاں سے اس کو use کر لے دوسر دریکہ ہی ہو سکتا ہے کہ جب آپ چائلڈ پروسس کریٹ کرتے ہیں تو اس کو start up info بھی پاس کرتے ہیں تو start up info کے اندر آپ اون inheritable حنڈلز کو place کر سکتے ہیں جو جو inheritable حنڈلز آپ نے چائلڈ کو پاس کرنے ان کی ویلیوز کو آپ start up info کے اندر place کرنے یہ تریکہ جو ہے کافی سیمپلر ہے سیمپلر اس وجہ سے ہے کہ کوئی اس کے اندر آپ کو complicated message passing نہیں کرنی پڑتی آئے ری دریکشن نہیں کرنی پڑتی اور سیمپلی چائلڈ پروسس کے اندر کو بہت دیدہ complicated task کیے بغیر آپ اس information کو retrieve کر سکتا ہے دوسرہ ایک اور تریکہ بھی کیا ہوتا ہے کہ جو حنڈل کی values ان کو ٹیکسٹ میں convert کر کے تو ان کو pass کیا جا سکتا ہے through the command line جو command line کے تروہ آپ child create کریں تو اس کو ساتھ حنڈل کو بھی pass کر دیا جا ہے as text یہ بھی ایک technique use کی جا سکتی ہے جب ایک child ایک حنڈل کو inherit کرتا ہے تو وہ ایک child کی اپنی ایک copy ہوتی ہے وہ distinct ہے from that جو کہ پیرنٹ کے پاس ہے اس کا اپنا status ہوگا جو پیرنٹ والا حنڈل ہے اور جو child والا حنڈل ہے اس کا اپنا status ہوگا for example اگر دونوں ایک file کو read کر رہے ہیں تو سکتا ہے child کسی اور position پر read کر رہا اور parent کسی اور position سے اس child کو read کر رہا رہا تو دونوں processes کو ان handles کو close بھی کرنا پڑتا ہے ایسا نہیں ہے کہ صرف parent کلوز کرے گا تو close ہو جائے گا child کو بھی حنڈل کلوز کرنا پڑے گا یہ گرافکلی ہم اس کی description دیکھ سکتے ہیں یہاں بھی ہمیں دیکھ رہے ہیں کہ ایک process one ہے اور ایک process two process one جو ہے یہ parent processor process one parent processor process two جو ہے وہ child processor parent one نے کئی handles create کیا ایک handle one create کیا handle two create کیا three create کیا اور four create کیا handle one کو اس نے inheritable بنائیا handle two کو اس نے inheritable نہیں بنائیا three کو اس نے inheritable بنائیا four کو اس نے inheritable نہیں بنائیا now آپ دیکھ سکتے ہیں کہ child کے اندر یہ جو inherited handle ہے یہ جو inherited handle ہے یہ درکٹلی available ہے اور اس handle کے through وہ اس resource کو access کر سکتا ہے جس resource کو parent access کر رہا جو inheritable handle اسی کو use کر کے وہ same resource کو child بھی access کر سکتا ہے یعنی کہ parent ایک file a کے اوپر right کر رہا اوپر file a کو use کر رہا تو child بھی اسی file کو use کر سکتا ہے جبکہ جو handle two تھا وہ inheritable نہیں تھا جو کہ file b کا handle ہے تو child جو ہے اس کو file b جو ہے اس طرح سے deadly accessible نہیں ہے اگر اس نے use کرنا ہے تو وہ پھر create file کر کے b کو use تو کر سکتا ہے پھر اسی طرح three کے case کے اندر دیکھیں جو handle تھا وہ parent نے create کیا اور وہ inherit ہونے کے بعد وہ handle جو ہے وہ child کو بھی available ہے child کو create کرنے کی ضرورت نہیں ہے پھر اس طرح سے ڈی دیکھیں ڈی کے case میں handle four کے case میں handle four کے case میں file ڈی access کر رہا لیکن file ڈی جو ہے اس نے inheritable نہیں منائی ہوئی اب اگر child اس کو file ڈی کو access کرنا جاتا ہے تو اس کو put سے create کرنا پڑھائے گا وہ inherited handle کو use کر کے file ڈی کو use نہیں کر سکتا ہے اگر ان case ڈود پڑھتی ہے تو اس کو ایک علق سے handle create کرنا پڑھائے گا جو file ڈی کو handle کریں اور اسی طرح سے child کو کسی اور file کے زیادہ پڑھتی ہے تو اس کے لیے بھی وہ handle create کرے گا جیسے کہ file ڈی کا case ہے تو یہاں پہ ہمیں تین cases تین distant cases نظر آتے ہیں ایک case ہے a اور c کا a اور c جو ہے files ان دونوں کے handle جو ہے وہ inheritable ہے a اور c files دونوں کے handle inheritable ہے create parent نے کیا اور child اس کو directly use کر سکتا ہے case دوسرا جو ہے وہ b اور e کا ہے b اور e کے case میں b کا handle کس نے create کیا parent نے create کیا وہ parent کو accessible ہے اور یہ handle inheritable نہیں ہے اس لیے child اس کو directly access نہیں کرا e کے case میں اس کا handle child نے create کیا اور parent اس کو access نہیں کرا تو ایسے بھی ہو سکتا ہے اور پھر a case d کا ہے d جو ہے وہ inheritable تو نہیں ہے لیکن اس کا handle جو ہے parent نے create کیا اور بعد میں کبھی child کو بھی ضرورت پڑی تو child نے بھی اس کا handle create کر کے اسی same file کے اوپر operation to form کرنا شروع کر دیا تو یہ کئی ساری possibilities ہیں جو کہ ایدر ہمیں نظر آ رہی ہیں لیکن ہمارا کام اگر ایسی کوئی file ہے یا ایسا کوئی resource ہے جس کو parent تو use کر رہا تو ساتھ وہ چاہتا ہے کہ اس کا child بھی use کرے تو ان resources کو inheritable بنانے سے ہمارا کام جو ہے کافی حتک اسان ہو جاتا ہے اور یہ بھی سمجھنے کی ضرورت ہے کہ ہر process جو وہ independent تو ایک process جو وہ کئی سارے handles بنا سکتا ہے ضروری نہیں کہ ہر handle inheritable جب child اور parent کا اپس میں relationship ہوتا ہے اور parent چاہتا ہے child اس کے لیے work کرے اور کچھ resources کے اوپر کام کرے جس کے پر parent بھی کام کر رہا تو وہاں پہ ہمیں inheritable handles کی ضرورت پڑتی ہیں