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

C++-এ Ctrl+C (SIGINT) সিগন্যাল ক্যাচ করা

C++-এ Ctrl+C দিয়ে প্রোগ্রাম বন্ধ করতে SIGINT সিগন্যাল পাঠানো হয়। <signal.h> (বা <csignal>) হেডারের signal() ফাংশন দিয়ে কাস্টম হ্যান্ডলার সেট করা যায়।

উদাহরণ কোড

#include <unistd.h>
#include <iostream>
#include <cstdlib>
#include <csignal>
using namespace std;

void signal_callback_handler(int signum) {
    cout << "Caught signal " << signum << endl; // signum = 2 (SIGINT)
    exit(signum); // প্রোগ্রাম টার্মিনেট
}

int main() {
    signal(SIGINT, signal_callback_handler); // হ্যান্ডলার রেজিস্টার
    while (true) {
        cout << "Program processing..." << endl;
        sleep(1);
    }
    return EXIT_SUCCESS;
}

আউটপুট (Ctrl+C চাপলে)

Program processing...
Program processing...
Program processing...
^Caught signal 2

সতর্কতা:

  • সিগন্যাল হ্যান্ডলার Async-signal-safe ফাংশনই কল করা উচিত (যেমন write, _Exit)। cout বা exit নন-এসিঙ্ক-সেফ, কিন্তু সাধারণ প্রোগ্রামে কাজ করে।
  • মাল্টিথ্রেডেড প্রোগ্রামে pthread_sigmask বা sigaction (SA_RESTART) ব্যবহার করা ভালো।
  • C++26-এ std::signal ডিপ্রিকেটেড, std::signal_handler আসছে।
  1. সি++ প্রোগ্রাম দিয়ে অন্য প্রোগ্রাম লঞ্চ করা

  2. C++-এ Hello World প্রোগ্রাম কীভাবে লিখবেন?

  3. C++-এ একটি সিম্পল প্রোগ্রাম কীভাবে তৈরি করবেন?

  4. C++ প্রোগ্রামিং শুরুর গাইড