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

C ভাষায় বাফার (Buffer) কী?


একটি অস্থায়ী স্টোরেজ এরিয়াকে বাফার বলা হয়। সব ইনপুট আউটপুট (I/O) ডিভাইসে I/O বাফার থাকে।

যখন আমরা প্রয়োজন থেকে বেশি মান ইনপুট হিসেবে পাস করার চেষ্টা করি, তবে বাকি মানগুলো অটোমেটিক্যালি ইনপুট বাফারে রাখা হয়। এই বাফার ডেটা অটোমেটিক্যালি পরবর্তী ইনপুট ফাংশনালিটিতে চলে যায়, যদি সেটি থাকে।

নেক্সট ইনপুট নেওয়ার আগে বাফার ক্লিয়ার করতে হয়।

উদাহরণ

বাফারের জন্য C প্রোগ্রাম নিচে দেওয়া হল:

#include  void main(){    int a, b;    printf("\n a মান লিখুন: ");    scanf("%d", &a);    printf("\n b মান লিখুন: ");    scanf("%d", &b);    printf("\n a+b = %d ", a+b);    getch(); }

আউটপুট

উপরের প্রোগ্রামটি এক্সিকিউট করলে নিচের ফলাফল পাওয়া যাবে:

a মান লিখুন: 1 b মান লিখুন: 2 a+b = 3

আবার প্রোগ্রামটি রান করুন। এইবার, আমরা a-তে মান লিখব কিন্তু b-তে নয়।

a মান লিখুন: 1 2 3 b মান লিখুন: a+b = 3

যদিও আমরা b মান দিনি, এটি পূর্বে বাফারে সংরক্ষিত মান নেয়।

বাস্তবায়নwohnern, যখন স্ট্যান্ডার্ড ইনপুট বাফার ডেটা সরাতে হয় তখন flushall() বা fflush() ফাংশন ব্যবহার করুন।

  • flushall() - এটি stdio.h-তে প্রি-ডিফাইনড ফাংশন। flushall ব্যবহার করে I/O বাফার থেকে ডেটা সরানো যায়।

  • fflush() - "stdio.h" হেডার ফাইলে প্রি-ডিফাইনড ফাংশন যা ইনপুট বা আউটপুট বাফার মেমোরি ক্লিয়ার করতে ব্যবহৃত হয়।

  • fflush(stdin) - ইনপুট বাফার মেমোরি ক্লিয়ার করতে ব্যবহৃত হয়। scanf স্টেটমেন্টের আগে ব্যবহার করার পরামর্শ দেওয়া হয়।

  • fflush(stdout) - আউটপুট বাফার মেমোরি ক্লিয়ার করতে ব্যবহৃত হয়। printf স্টেটমেন্টের আগে ব্যবহার করার পরামর্শ দেওয়া হয়।

  1. নেটওয়ার্ক সিকিউরিটি বলতে কী বোঝায়? সংজ্ঞা, প্রকার ও গুরুত্ব

  2. ইন্টারফেস এবং সার্ভিস বলতে কী বোঝায়?

  3. সি ভাষায় অড লুপ (Odd Loop) কী?

  4. C প্রোগ্রামিং-এ স্ট্যাটিক মেমরি অ্যালোকেশন কি?