এই সেকশনে আমরা সি এবং সি++-তে exit() এবং _Exit()-এর পার্থক্য দেখব। সি-তে exit() কলিং প্রসেসকে টার্মিনেট করে exit() ফাংশনের পর থাকা বাকি কোড এক্সিকিউট না করে।
সি++১১-এ একটি নতুন ফাংশন আছে যেটি _Exit()। এই ফাংশনের বৈশিষ্ট্য কী? exit() ফাংশন প্রোগ্রাম টার্মিনেট করার আগে কিছু ক্লিন-আপ (cleaning) কাজ করে। এটি কানেকশন টার্মিনেশন, বাফার ফ্লাশ (buffer flushes) ইত্যাদি করে। কিন্তু _Exit() ফাংশন কোনো ক্লিন-আপ করে না। যদি আমরা atexit() মেথড ব্যবহার করে টেস্ট করি, তবে এটি কাজ করবে না।
দুটি উদাহরণ দেখি যেখানে প্রথমে exit() ফাংশন ব্যবহার করা হয়েছে, তারপর
উদাহরণ ১ (exit() ব্যবহার)
#include <bits/stdc++.h>
using namespace std;
void my_function(void) {
cout << "Exiting from program";
}
int main() {
atexit(my_function);
exit(10);
}
আউটপুট
Exiting from program
উদাহরণ ২ (_Exit() ব্যবহার)
#include <bits/stdc++.h>
using namespace std;
void my_function(void) {
cout << "Exiting from program";
}
int main() {
atexit(my_function);
_Exit(10);
}
আউটপুট
এই কেসে আউটপুট ব্ল্যাঙ্ক। কিছুই আসে না।