আমি malloc()
ফাংশনটি ব্যবহার করে কোড বরাদ্দকারী একটি সি প্রোগ্রাম লিখেছি । আমি যদি free()
ফাংশনটি ব্যবহার করে মেমরিটি মুক্ত না করি তবে উবুন্টু এটি স্বয়ংক্রিয়ভাবে প্রকাশ করবে?
আমি malloc()
ফাংশনটি ব্যবহার করে কোড বরাদ্দকারী একটি সি প্রোগ্রাম লিখেছি । আমি যদি free()
ফাংশনটি ব্যবহার করে মেমরিটি মুক্ত না করি তবে উবুন্টু এটি স্বয়ংক্রিয়ভাবে প্রকাশ করবে?
উত্তর:
হ্যাঁ.
কার্নেল প্রোগ্রামের সমাপ্তির পরে কোনও প্রোগ্রাম দ্বারা বরাদ্দকৃত সমস্ত সংস্থান প্রকাশ করবে।
এটি করা হয়েছে do_exit()
ফাংশনটি নির্ধারণের পরে এর কার্য kernel/exit.c
সম্পাদন স্থগিত করার পরে; do_exit()
ফাংশন সঞ্চালনের নিজেই ঘটনা একটি নম্বর দ্বারা আলোড়ন সৃষ্টি হতে পারে, সবচেয়ে বেশি যে একটি সুনির্দিষ্ট দ্বারা exit()
প্রাপ্ত syscall তার নিয়মিত গণনার সময় অথবা একটি অন্তর্নিহিত করে প্রোগ্রাম ডাকা exit()
তার পরিসমাপ্তি উপর প্রোগ্রাম ডাকা প্রাপ্ত syscall (সি কম্পাইলার একটি স্থান হিসাবে exit()
পর প্রাপ্ত syscall main()
'র আসতে)। অন্যান্য কারণগুলির মধ্যে অহেতুক / অজ্ঞাত সংকেত বা ব্যতিক্রম অভ্যর্থনা অন্তর্ভুক্ত।
do_exit()
ফাংশন নিজেই কাজগুলো একটি সংখ্যা সম্পাদন করে। এটি কার্যকর করা বন্ধ করার পরে, প্রোগ্রামটির বরাদ্দ হওয়া সংস্থানগুলি কার্নেল দ্বারা প্রকাশ করা হয় এবং আরও ব্যবহারের জন্য সিস্টেমে ফিরে আসে।