কম্পিউটার টিউটোরিয়াল

সি/সি++-তে exit() এবং _Exit() ফাংশনের পার্থক্য


এই সেকশনে আমরা সি এবং সি++-তে 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);
}

আউটপুট

এই কেসে আউটপুট ব্ল্যাঙ্ক। কিছুই আসে না।
  1. C++-এ transform_inclusive_scan() ফাংশন

  2. C++ STL-এ set::crbegin() এবং set::crend() ফাংশন

  3. C++-এ difftime() ফাংশন

  4. C++-এ ফ্রেন্ড ক্লাস এবং ফাংশন