Printk
پرنٹ کے لینکس کرنل انٹرفیس کا ایک سی فنکشن ہے جو کرنل لاگ پر پیغامات پرنٹ کرتا ہے۔ یہ ایک سٹرنگ پیرامیٹر کو قبول کرتا ہے جسے فارمیٹ سٹرنگ کہا جاتا ہے، جو سٹرنگ میں مختلف ڈیٹا ٹائپ پیرامیٹرز کی صوابدیدی تعداد کو پیش کرنے کے لیے ایک طریقہ کی وضاحت کرتا ہے۔ اس کے بعد سٹرنگ کو دانا لاگ پر پرنٹ کیا جاتا ہے۔ یہ پرنٹ ایف کی طرح تجریدی فراہم کرتا ہے اور اس کی فارمیٹ سٹرنگ کی تجزیہ اور دلائل پرنٹ ایف کی طرح برتاؤ کرتے ہیں۔ یہ دانا پروگرامرز کے لیے ڈیبگنگ ٹول کے طور پر کام کرتا ہے جنہیں دانا سے پیغامات لاگ ان کرنے کے لیے اس فنکشن کی ضرورت ہوتی ہے۔ پرنٹ کے فنکشن کا پروٹو ٹائپ ہے: انٹ پرنٹ کے (کانسٹ چار * ایف ایم ٹی،) ؛ سی معیاری لائبریری اور اس کا پرنٹ ایف فنکشن کرنل موڈ میں دستیاب نہیں ہے، اس لیے پرنٹ کے کی ضرورت ہے۔ پرنٹ ایف سے فرق فنکشن پرنٹ کے پرنٹ ایف پر مبنی ہے، لیکن ہمیشہ اسی طرح استعمال نہیں کیا جا سکتا جس طرح پرنٹ ایف استعمال کیا جاتا ہے۔ لاگ لیولز پرنٹ کے کال کرنے والے کو بھیجے جانے والے پیغام کی قسم اور اہمیت کی وضاحت کرنے کی اجازت دیتا ہے۔ اس وضاحت کنندہ کو لاگ لیول کہا جاتا ہے۔ لاگ لیول کرنل میسج لاگ پر بھیجے جانے والے پیغام کی قسم کی وضاحت کرتا ہے۔ لاگ کی سطح کو پیشگی (سی کے سٹرنگ لیٹرل کنکیٹیشن کا استعمال کرتے ہوئے) ایک سٹرنگ کے ذریعے متعین کیا جاتا ہے جو لاگ کی سطح کو تیار کیے جانے والے پیغام کے آغاز تک بیان کرتا ہے۔ مثال کے طور پر، کے ای آر این _ آئی این ایف او پر مندرجہ ذیل کا استعمال کرتے ہوئے ایک پیغام تیار کیا جا سکتا ہے: پرنٹ کے (کے ای آر این _ آئی این ایف او "پیغام:% s\n"، آر جی) ؛ لاگ کی سطح کی وضاحت کرنے والا سٹرنگ ہیڈر کردار کے اے ایس سی آئی آئی اسٹارٹ پر مشتمل ہوتا ہے جس کے بعد لاگ کی سطح کو بیان کرنے والا ہندسہ ہوتا ہے یا اس بات کی نشاندہی کرنے کے لیے کہ پیغام پچھلے پیغام کا تسلسل ہے۔ درج ذیل لاگ کی سطحیں، ان کی تشریحات کے ساتھ، ذیل میں دی گئی ہیں۔ جب لاگ لیول کی وضاحت نہیں کی جاتی ہے، تو ڈیفالٹ لاگ لیول KERN _ WARNING ہوتا ہے، جب تک کہ کرنل میں ہی کوئی مختلف ڈیفالٹ سیٹ نہ کیا گیا ہو، جیسے کہ گوگل ویل = بوٹ آرگمنٹ کے ساتھ۔ لاگ کی سطحوں کی وضاحت <لینکس/کیرن _ لیولز. ایچ> میں کی جاتی ہے۔ کون سی لاگ کی سطح پرنٹ کی جاتی ہے اسے sysctl فائل/پروک/sys/کرنل/پرنٹ کے کا استعمال کرتے ہوئے ترتیب دیا جاتا ہے۔ پوائنٹر فارمیٹس ٪ پی فارمیٹ سپیسیفائر (پرنٹ ایف میں پوائنٹرز کو پرنٹ کرنے کے لیے استعمال کیا جاتا ہے) کو اضافی فارمیٹنگ کے طریقوں کو شامل کرنے کے لیے بڑھایا جاتا ہے، مثال کے طور پر،% پی آئی ایس پی سی کا استعمال کرتے ہوئے اسٹرکٹ ساکڈر * کو پرنٹ کرنے کی درخواست ایک آئی پی وی 4/وی 6 ایڈریس اور پورٹ کو انسان دوست شکل میں پرنٹ کرے گی (مثال کے طور پر۔ "1.2.3.4:12345" یا "[1:2:3:4:5:6:7:8]: 12345")۔ کوئی فلوٹنگ پوائنٹ سپورٹ نہیں ہے جبکہ پرنٹ ایف فلوٹنگ پوائنٹ نمبروں کی آؤٹ پٹ کو سپورٹ کرتا ہے، پرنٹ کے نہیں کرتا، کیونکہ لینکس کرنل کرنل کے اندر فلوٹنگ پوائنٹ نمبروں کا استعمال نہیں کرتا ہے۔ تفصیل فنکشن سسٹم کنسول تک رسائی کو کنٹرول کرنے والے سیمافور کو لاک کرنے کی کوشش کرتا ہے۔ اگر یہ کامیاب ہو جاتا ہے تو آؤٹ پٹ لاگ ان ہو جاتا ہے اور کنسول ڈرائیوروں کو کال کیا جاتا ہے۔ اگر سیمافور حاصل کرنا ممکن نہیں ہے تو آؤٹ پٹ کو لاگ بفر میں رکھا جاتا ہے، اور کنسول سیمافور کا موجودہ ہولڈر جب کنسول سیمافور جاری کرے گا تو نئی آؤٹ پٹ کو دیکھے گا اور سیمافور کو جاری کرنے سے پہلے کنسول کو بفرڈ آؤٹ پٹ بھیجے گا۔ اس موخر پرنٹنگ کا ایک اثر یہ ہے کہ کوڈ جو پرنٹ کے کو کال کرتا ہے اور پھر پرنٹ کیے جانے والے لاگ کی سطح کو تبدیل کرتا ہے وہ ٹوٹ سکتا ہے۔ اس کی وجہ یہ ہے کہ اصل پرنٹنگ ہونے پر پرنٹ کیے جانے والے لاگ کی سطح کا معائنہ کیا جاتا ہے۔ فنکشن پرنٹک کو دانا میں کہیں سے بھی بلایا جا سکتا ہے سوائے دانا بوٹ کے عمل کے بہت ابتدائی مراحل کے دوران، جب سسٹم کنسول کو شروع نہیں کیا جاتا ہے۔ متبادل فنکشن ابتدائی پرنٹ کچھ آرکیٹیکچرز پر لاگو کیا جاتا ہے اور بوٹ کے عمل کے ابتدائی مراحل کے دوران پرنٹ کرنے کے لیے یکساں طور پر استعمال ہوتا ہے۔ حوالہ جات بیرونی لنکس فارمیٹ حوالہ لینکس دانا آپریٹنگ سسٹم APIs