কম্পিউটার

C প্রোগ্রাম যা Ctrl+Z চাপলে স্থগিত হয় না


প্রোগ্রামিং-এ যখন কোনো প্রোগ্রাম ত্রুটিপূর্ণ হয়ে যায় এবং টার্মিনাল কম্পাইলারে অস্বাভাবিকভাবে চলে তখন প্রোগ্রামারকে স্পষ্টভাবে প্রোগ্রামটি চালানো থেকে বন্ধ করার ক্ষমতা থাকে। স্পষ্টভাবে প্রোগ্রামটি বন্ধ করার জন্য, ব্যবহারকারীকে অবশ্যই সঠিক কীবোর্ড শর্টকাটটি জানতে হবে যা চাপতে হবে৷

কোডের ব্লকের এক্সিকিউশন বন্ধ করতে, দুই ধরনের কীবোর্ড শর্টকাট ব্যবহার করা হয়।

  • Ctrl+c − এটি প্রোগ্রামের নির্বাহ বন্ধ করতে ব্যবহৃত হয়, এটি i/o ক্রিয়াকলাপগুলি সম্পূর্ণ করতে কিছুটা সময় নেয় এবং তারপরে কার্য সম্পাদন স্থগিত করে। এটি একটি SIGINT পাঠায় প্রক্রিয়ার সংকেত যা বন্ধ হয়ে যায়। কিছু ভাষায়, এটি পরিচালনা করার উপায় রয়েছে SIGINT৷ সি তে সিগন্যাল ফাংশনের মত।

  • Ctrl+z − এটি প্রোগ্রামের এক্সিকিউশন বন্ধ করতে ব্যবহার করা হয়, প্রক্রিয়া সম্পর্কিত সমস্ত কাজ বন্ধ করে দেওয়া হয় এবং এক্সিকিউশন স্থগিত করা হয়। এটি একটি SINSTTP পাঠায় প্রক্রিয়ার সংকেত যা প্রোগ্রামটি বন্ধ করে দেয় যদিও বাস্তবায়ন একই তবে এই সংকেতটি অন্যদের তুলনায় আরও শক্তিশালী। এটিও পরিচালনা করা যেতে পারে।

এখানে, আমরা একটি কোড লিখব যা ctrl+z কলকে অতিক্রম করতে সক্ষম হবে। এবং সাসপেন্ড হওয়ার পরিবর্তে প্রোগ্রামটি প্রিন্ট করবে “ctrl+z এই কোডটি সাসপেন্ড করতে পারে না ”।

উপরে যেমন আলোচনা করা হয়েছে, ctrl+z C প্রোগ্রামিং ভাষায় কল পরিচালনা করা যেতে পারে। যখন SINSTTP প্রোগ্রামের প্রক্রিয়া শেষ করার জন্য সংকেত আহ্বান করা হয়। এই সংকেতটি কী করে তা আমরা পুনরায় সংজ্ঞায়িত করব যাতে আমি কোডটি বন্ধ করব না এবং ব্যবহার করার সময় একটি লাইন প্রিন্ট করব না৷

এই ধরনের জিনিস পরিচালনা করতে সিগন্যাল() পদ্ধতি ব্যবহার করা হয়।

উদাহরণ

#include <stdio.h>
#include <signal.h>
void signalhandler(int sig_num){
   signal(SIGTSTP, signalhandler);
   printf("Cannot execute Ctrl+Z\n");
}
int main(){
   int a = 1;
   signal(SIGTSTP, signalhandler);
   while(a){
   }
   return 0;
}

আউটপুট

// an infinite loop

  1. কিভাবে একটি সি প্রোগ্রাম নির্বাহ করে?

  2. স্নিপ পাঠানো যায়নি, একটি ইমেল প্রোগ্রাম ইনস্টল করা আছে কিনা তা পরীক্ষা করুন

  3. Windows 11/10-এ পূর্ণ-স্ক্রীন মোডে থাকাকালীন টাস্কবার লুকিয়ে রাখে না

  4. ত্রুটি 1083, এক্সিকিউটেবল প্রোগ্রাম যে পরিষেবাটি চালানোর জন্য কনফিগার করা হয়েছে পরিষেবাটি বাস্তবায়ন করে না