C++ __FILE__ میکرو

C File Mykrw



میکرو کچھ اسکرپٹ میں کوڈ کا کچھ ٹکڑا ہوتا ہے جس کا کچھ مخصوص نام ہوتا ہے۔ جب میکرو میں سے کسی کو پھانسی دی جاتی ہے، تو ان کے پیچھے کوڈ کو ایک خاص کام انجام دینے کے لیے عمل میں لایا جاتا ہے۔ بالکل اسی طرح، __FILE__ ایک میکرو ہے جو C++ زبان میں کسی مخصوص فائل کا راستہ حاصل کرنے کے لیے استعمال ہوتا ہے۔ لہذا، آج اس گائیڈ میں، ہم C++ __FILE__ میکرو کے کام کرنے پر بات کریں گے۔

مثال 01:

آئیے ٹرمینل کنسول ایپلیکیشن کو شروع کرکے C++ میں __FILE__ میکرو کی پہلی مثال لیں۔ ایسا کرنے کے لیے آپ شاید شارٹ کٹ 'Ctrl+Alt+T' استعمال کر رہے ہوں۔ اگر آپ شارٹ کٹ کی کو بھول گئے ہیں تو شیل کو کھولنے کا دوسرا طریقہ مینو ایکٹیویٹی ایریا کا استعمال کرنا ہے۔ آپ کی سکرین پر ٹرمینل کنسول لانچ ہونے کے بعد، اس میں کوڈ کرنے کے لیے ایک نئی c++ فائل بنانے کی کوشش کریں۔ ایک سادہ 'ٹچ' استفسار کے ساتھ فائل بنائی جا سکتی ہے، جیسا کہ ذیل میں منسلک تصویر میں دکھایا گیا ہے۔ نئی بنائی گئی فائل کا نام 'ٹچ' کلیدی لفظ کے ساتھ دیا جانا چاہیے۔







آپ کے اوبنٹو 20.04 لینکس سسٹم پر کوئی ایڈیٹر انسٹال ہونا چاہیے تاکہ اسے نئی تخلیق شدہ فائلوں کو کوڈنگ اور کھولنے کے لیے استعمال کیا جا سکے۔ لینکس کے صارفین میں سب سے زیادہ تجویز کردہ ایڈیٹرز GNU Nano اور Vim ایڈیٹر ہیں۔ اس کے علاوہ، ٹیکسٹ ایڈیٹر کو بھی استعمال کیا جا سکتا ہے اگر مذکورہ دونوں ایڈیٹرز کام نہیں کر رہے ہیں۔ لہذا، ہم نے پہلے ہی GNU نینو ایڈیٹر انسٹال کر لیا ہے۔ اس طرح، ہم اسے کوڈ بنانے کے لیے فائل کو کھولنے اور اس میں ترمیم کرنے کے لیے استعمال کریں گے۔ ایڈیٹر کو کام کرنے کے لیے فائل کے نام کے ساتھ 'نینو' کلیدی لفظ استعمال کریں۔





اب، نئی بنائی گئی C++ فائل macro.cc ایڈیٹر میں کوڈنگ کے لیے تیار ہے۔ آئیے C++ کوڈ کو لاگو کرنا شروع کریں کیونکہ ہم __FILE__ میکرو کے کام کو دیکھنے کے لیے اس مضمون کو نافذ کر رہے ہیں۔ ہم نے اپنا C++ کوڈ اس کے اوپر معیاری ان پٹ آؤٹ پٹ ہیڈر شامل کرکے شروع کیا ہے۔ کلیدی لفظ 'شامل' ایسا کرنے کے لیے ہیش کے نشان کے ساتھ استعمال کیا گیا ہے۔ اس ہیڈر کے بغیر، C++ کوڈ کا ان پٹ اور آؤٹ پٹ تالیف اور عمل درآمد پر کنسول پر کام نہیں کرے گا۔





main() طریقہ ہمارے کوڈ کا بنیادی ستون ہے کیونکہ عمل اس سے شروع ہوتا ہے اور اسی پر ختم ہوتا ہے۔ main() طریقہ کے اندر، اصل کام کیا جائے گا۔ ہم __FILE__ میکرو کی فعالیت کو بیان کرنے کے لیے اپنے مین() طریقہ کار میں سنگل لائن کوڈ استعمال کرتے رہے ہیں۔ لہذا، پرنٹ ایف اسٹیٹمنٹ کو یہاں استعمال کیا گیا ہے، دو قدروں کو بطور دلیل لیتے ہوئے، یعنی سٹرنگ کو فائل کا نام اور میکرو فنکشن لینا۔

موجودہ فائل پاتھ یا اس کا نام حاصل کرنے کے لیے یہاں __FILE__ میکرو استعمال ہوتا ہے۔ جب کہ '%S' کا استعمال فائل کے موجودہ راستے یا اسٹرنگ کے اندر اس کے نام کو پرنٹ کرنے کے لیے کیا جاتا ہے۔ آپ کو 'Ctrl+S' شارٹ کٹ کی مدد سے عملدرآمد سے پہلے اپنا کوڈ محفوظ کرنا ہوگا۔ اب کوڈ محفوظ ہو گیا ہے، 'Ctrl+X' شارٹ کٹ استعمال کرکے شیل ٹرمینل پر واپس جانے کی کوشش کریں۔



جیسا کہ ہم __FILE__ میکرو کے لیے C++ کوڈ کے ساتھ کام کر چکے ہیں، آئیے C++ کوڈ کی تالیف شروع کریں۔ تالیف کے لیے، ہم نے پہلے ہی C++ کوڈ کو مرتب کرنے کے لیے g++ کمپائلر انسٹال کر لیا ہے۔ لہذا، 'macro.cc' فائل کو مرتب کرنے کے لیے ٹرمینل میں g++ کمپائلر کا استعمال کیا گیا ہے۔ تالیف کرنے پر، یہ کچھ بھی نہیں لوٹاتا ہے، جس سے ظاہر ہوتا ہے کہ C++ کوڈ macro.cc فائل کے اندر موجود ہے، معنی کے لحاظ سے درست ہے۔ تالیف کے بعد، کوڈ کے نفاذ کے لیے موڑ آتے ہیں۔ کوڈ فائل کو چلانے کے لیے، ہم './.aout' سادہ استفسار کا استعمال کرتے ہیں۔ macro.cc فائل کو چلانے پر، ہمیں بدلے میں ایک فائل کا نام مل گیا ہے۔ اس طرح C++ __FILE__ میکرو کام کرتا ہے۔

مثال 02:

آئیے اوبنٹو 20.04 سسٹم کے اندر C++ __FILE__ میکرو کی فعالیت کو دیکھنے کے لیے گہرائی میں جانے کے لیے ایک اور مثال رکھتے ہیں۔ جیسا کہ ہم نے دیکھا ہے کہ C++ __FILE__ میکرو کیسے کام کرتا ہے جب اسے کسی فائل کے فائل پاتھ کو لانے کے لیے استعمال کیا جاتا ہے جس میں اس کا ذکر کیا گیا ہے۔

اب، ہم C++ __FILE__ میکرو کا استعمال کرتے ہوئے فائل کا راستہ یا نام حاصل کریں گے اس فائل کے علاوہ جس پر ہم کام کر رہے ہیں۔ لہذا، ہم نے کوڈ کو اپ ڈیٹ کرنے کے لیے وہی فائل macro.cc کو GNU Nano ایڈیٹر میں کھولی ہے۔ ہم نے شامل کی ورڈ کے ساتھ معیاری ان پٹ آؤٹ پٹ ہیڈر شامل کیا ہے اور انٹیجر کی واپسی کی قسم کے ساتھ ایک main() فنکشن کو شروع کیا ہے۔

مین () طریقہ کے اندر، پہلا پرنٹ سٹیٹمنٹ وہی ہے جو پرانا فائل پاتھ حاصل کرنے کے لیے ہے جس پر ہم فی الحال کام کر رہے ہیں۔ اس کے بعد، ہم نے #line کی ورڈ کو ایک اور فائل نام کے ساتھ استعمال کیا ہے، یعنی 'new.txt' اگلی مسلسل لائن میں۔ یہ موجودہ فائل کے علاوہ فائل کی وضاحت کرنا ہے جس کے لئے ہمیں اس کا نام یا راستہ ملے گا۔ اگلا پرنٹ ایف سٹیٹمنٹ C++ __FILE__ میکرو کی مدد سے 'new.txt' فائل کے راستے کو پرنٹ کرنے کے لیے استعمال کیا گیا ہے۔ تالیف کے وقت کسی بھی قسم کی تکلیف سے بچنے کے لیے اپنا نیا اپ ڈیٹ شدہ کوڈ محفوظ کریں۔ ایسا کرنے کے لیے 'Ctrl+S' استعمال کریں۔

اپ ڈیٹ شدہ فائل کو محفوظ کرنے کے بعد، اسے اپنے کی بورڈ سے 'Ctrl+X' کے ذریعے چھوڑ دیں۔ اب، ہم شیل اسکرین پر واپس آ گئے ہیں۔

آئیے اپ ڈیٹ شدہ فائل کو مرتب کریں۔ ایک فائل macro.cc کے نام کے ساتھ ایسا کرنے کے لیے g++ کمپائلر استعمال کریں۔ کامیاب تالیف کے بعد، کوڈ کو کنسول میں './a.out' کمانڈ کے ساتھ چلائیں۔ آؤٹ پٹ پہلے موجودہ فائل کا راستہ دکھاتا ہے، پھر دوسری فائل کا راستہ، 'new.txt' شیل اسکرین پر ظاہر ہوتا ہے۔ دیکھیں کہ شیل پر فائل کا راستہ دکھانے کے لیے __FILE__ میکرو کا استعمال کرنا کتنا آسان ہے۔

مثال 03:

آئیے C++ میں __FILE__ میکرو کے ساتھ __LINE__ میکرو پر ایک نظر ڈالیں۔ __LINE__ میکرو اس فائل کا لائن نمبر دکھائے گا جس پر میکرو استعمال کیا گیا ہے۔ لہذا، ایک ہی فائل کو کھولیں اور دونوں پرنٹ ایف اسٹیٹمنٹس کو اپ ڈیٹ کریں۔ C++ __LINE__ میکرو سے پہلے، ہم نے C++ __LINE__ میکرو کو شامل کیا ہے۔ اس __LINE__macro کو موجودہ فائل کا لائن نمبر مل رہا ہے جہاں __FILE__ پہلے آتا ہے۔ جب کہ اگلی __LINE__ میکرو کو دوسری فائل کا پہلا لائن نمبر ملے گا کیونکہ ہم نے پہلے ہی کوڈ میں فائل کے نام کے ساتھ لائن نمبر کا ذکر کیا ہے۔

فائل کو محفوظ کرنے اور چھوڑنے کے بعد، ہم شیل ٹرمینل پر واپس آگئے ہیں۔ ہم اسی g++ کمانڈ کو C++ macro.cc فائل کوڈ کو مرتب کرنے کے لیے استعمال کر رہے ہیں۔ کامیاب تالیف پھانسی کی کمانڈ کی طرف لے جاتی ہے۔ اب ایسا کرنے کے لیے یہاں './a.out' کمانڈ استعمال کی جاتی ہے۔ عملدرآمد ہمیں بتاتا ہے کہ پہلی فائل، یعنی موجودہ فائل لائن 3 میں، جبکہ __FILE__ میکرو کوڈ میں مذکور دوسری فائل کی پہلی لائن پر ہے۔

نتیجہ:

یہ مضمون میکروز کی تعریف پر مشتمل ہے اور Ubuntu 20.04 سسٹم میں C++ __FILE__ میکرو کے استعمال پر بحث کرتا ہے۔ C++ __LINE__ میکرو کو بھی کچھ مثالوں میں زیر بحث لایا گیا ہے تاکہ C++ __FILE__ میکرو کے کام کو مزید واضح کیا جا سکے۔ خلاصہ یہ کہ، ہمیں بڑی امید ہے کہ یہ مضمون آپ کو C++ __FILE__macro میں بہترین طریقے سے مدد فراہم کرے گا۔