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

সি ভাষায় ফাইল এরর হ্যান্ডলিং (ferror, perror, feof)

সাধারণ ফাইল এররসমূহ

  • ফাইলের শেষে পড়া শেষ হয়ে গেলেও পড়া চালানোর চেষ্টা।
  • ডিভাইস ওভারফ্লো।
  • অবৈধ ফাইল খোলার চেষ্টা।
  • ভুল মোডে ফাইল খোলা (যেমন রিড-অনলি ফাইলে রাইট করার চেষ্টা)।

এরর হ্যান্ডলিং ফাংশনগুলো

  • ferror()
  • perror()
  • feof()

ferror() ফাংশন

রিড বা রাইট অপারেশনের সময় কোনো এরর হয়েছে কিনা তা যাচাই করে।

int ferror(FILE *fp);

সফল হলে 0 রিটার্ন করে, এরর হলে নন-জিরো।

if (ferror(fp))
    printf("Error occurred");

perror() ফাংশন

সিস্টেম এরর মেসেজ প্রিন্ট করে। আপনার দেওয়া স্ট্রিং + ": " + সিস্টেম এরর টেক্সট।

perror("Error message");

আউটপুট উদাহরণ: Error message: No such file or directory

feof() ফাংশন

ফাইলের শেষ (EOF) পৌঁছানো হয়েছে কিনা যাচাই করে।

int feof(FILE *fp);

EOF পৌঁছালে নন-জিরো রিটার্ন করে, অন্যথায় ০।

if (feof(fp))
    printf("End of file reached");

সম্পূর্ণ উদাহরণ প্রোগ্রাম

#include <stdio.h>

int main() {
    FILE *fp;
    char str[30] = "Error is";
    int i = 20;

    fp = fopen("sample.txt", "r"); // ফাইল নেই, তাই NULL রিটার্ন করবে
    if (fp == NULL) {
        printf("File does not exist\n");
        perror(str); // সিস্টেম এরর দেখাবে
    } else {
        fprintf(fp, "%d", i); // রিড-অনলি মোডে রাইট করার চেষ্টা -> এরর
        if (ferror(fp)) {
            perror(str);
            printf("Error in file operation\n");
        }
        fclose(fp);
    }
    return 0;
}

feof() ব্যবহার করে ফাইল পড়ার উদাহরণ

#include <stdio.h>

int main() {
    FILE *fp;
    int n;

    // ফাইলে লিখুন
    fp = fopen("numbers.txt", "w");
    for (int i = 10; i <= 100; i += 10)
        putw(i, fp);
    fclose(fp);

    // ফাইল পড়ুন
    fp = fopen("numbers.txt", "r");
    printf("File content: ");
    while (1) {
        n = getw(fp);
        if (feof(fp)) {
            printf("\nReached end of file.\n");
            break;
        }
        printf("%d ", n);
    }
    fclose(fp);
    return 0;
}

আউটপুট

File content: 10 20 30 40 50 60 70 80 90 100
Reached end of file.
  1. C ভাষায় কিউ (Queue) তে এলিমেন্ট ইনসার্ট করার পদ্ধতি

  2. সি ভাষায় হাই-লেভেল I/O ফাংশনসমূহ (fprintf, fscanf, fread, fwrite ইত্যাদি)

  3. সি ভাষায় শিফট অপারেশন (লেফট, রাইট শিফট এবং কমপ্লিমেন্ট)

  4. সি ভাষায় বিভিন্ন সার্চিং টেকনিক কী কী?