ফাইল EOF এবং ত্রুটি চেকিং

ফাইল হ্যান্ডলিং - সি প্রোগ্রামিং উদাহরণ (C Examples) - Computer Science

377

সি প্রোগ্রামিং ভাষায় EOF (End of File) এবং ত্রুটি চেকিং ফাইল হ্যান্ডলিংয়ের ক্ষেত্রে গুরুত্বপূর্ণ বিষয়। EOF এবং ত্রুটি চেকিং ফাইল থেকে ডেটা পড়া ও লেখার সময় সঠিক ডেটা প্রাপ্তি এবং ত্রুটি নির্ণয় নিশ্চিত করে।

EOF (End of File)

EOF হলো ফাইলের শেষ চিহ্নিতকারী, যা নির্দেশ করে যে ফাইলের সমস্ত ডেটা পড়া শেষ হয়েছে। fscanf(), fgets() বা অন্য কোনো পড়ার ফাংশন ব্যবহার করার সময়, ফাইলের শেষ প্রাপ্ত হলে এটি EOF রিটার্ন করে। EOF সাধারণত -১ হিসেবে ডিফাইন করা থাকে, যা stdio.h লাইব্রেরির মধ্যে সংজ্ঞায়িত।

উদাহরণ: EOF চেক করে ফাইল পড়া

#include <stdio.h>

int main() {
    FILE *file;
    char text[100];

    file = fopen("example.txt", "r");  // ফাইলটি পড়ার জন্য খোলা

    if (file == NULL) {
        printf("File could not be opened.\n");
        return 1;
    }

    printf("Data from file:\n");
    while (fscanf(file, "%[^\n]\n", text) != EOF) {  // EOF চেক করা হচ্ছে
        printf("%s\n", text);
    }

    fclose(file);  // ফাইল বন্ধ
    return 0;
}

ব্যাখ্যা:

  • fscanf() ফাংশন প্রতিটি লাইনে ডেটা পড়ে এবং যখন ফাইলের শেষ আসে, এটি EOF রিটার্ন করে, ফলে লুপটি বন্ধ হয়।

ত্রুটি চেকিং

ফাইল অপারেশনের সময় কোনো ত্রুটি হয়েছে কিনা তা নিশ্চিত করার জন্য সি প্রোগ্রামিংয়ে কিছু ফাংশন ব্যবহার করা হয়। সাধারণ ত্রুটি চেকিংয়ের জন্য ferror() এবং feof() ফাংশন ব্যবহার করা হয়।

১. ferror() ফাংশন

ferror() ফাংশন ব্যবহার করে চেক করা হয় যে ফাইল অপারেশনে কোনো ত্রুটি ঘটেছে কিনা। এটি যদি কোনো ত্রুটি খুঁজে পায়, তাহলে একটি নন-জিরো ভ্যালু রিটার্ন করে।

গঠন:

int ferror(FILE *stream);

উদাহরণ: ferror() ফাংশন ব্যবহার করে ত্রুটি চেক করা

#include <stdio.h>

int main() {
    FILE *file;
    char text[100];

    file = fopen("non_existing_file.txt", "r");  // একটি অপ্রাপ্য ফাইল খোলা

    if (file == NULL) {
        printf("File could not be opened.\n");
    } else {
        if (fscanf(file, "%s", text) == EOF) {
            if (ferror(file)) {
                printf("Error reading file.\n");
            }
        }
        fclose(file);
    }
    return 0;
}

আউটপুট:

File could not be opened.

ব্যাখ্যা:

  • এখানে ferror() ফাংশন চেক করে যে ফাইল থেকে পড়ার সময় কোনো ত্রুটি হয়েছে কিনা।

২. feof() ফাংশন

feof() ফাংশন ব্যবহার করে চেক করা হয় যে ফাইলের শেষ (EOF) পৌঁছানো হয়েছে কিনা। এটি ফাইল অপারেশনের সময় EOF পৌঁছালে একটি নন-জিরো ভ্যালু রিটার্ন করে।

গঠন:

int feof(FILE *stream);

উদাহরণ: feof() ফাংশন ব্যবহার করে EOF চেক করা

#include <stdio.h>

int main() {
    FILE *file;
    char text[100];

    file = fopen("example.txt", "r");  // ফাইল খোলা

    if (file == NULL) {
        printf("File could not be opened.\n");
        return 1;
    }

    while (fscanf(file, "%s", text) != EOF) {
        printf("%s ", text);
    }

    // EOF পৌঁছানোর চেক
    if (feof(file)) {
        printf("\nReached the end of file.\n");
    } else {
        printf("\nDid not reach the end of file.\n");
    }

    fclose(file);
    return 0;
}

আউটপুট:

Data from file...
Reached the end of file.

ব্যাখ্যা:

  • feof() ফাংশন নিশ্চিত করে যে ফাইলের শেষ পর্যন্ত পড়া হয়েছে কিনা। EOF পৌঁছালে এটি নন-জিরো রিটার্ন করে।

সংক্ষেপে EOF এবং ত্রুটি চেকিং ফাংশনের সংক্ষিপ্তসার

ফাংশনব্যবহার
ferror()ফাইল অপারেশনে কোনো ত্রুটি ঘটেছে কিনা তা চেক করে।
feof()ফাইলের শেষ পৌঁছানো হয়েছে কিনা তা চেক করে।

প্রয়োজনীয় টিপস

  • ফাইল অপারেশন সফল হয়েছে কিনা তা যাচাই করার জন্য ferror() এবং feof() ব্যবহার করা উচিত।
  • EOF চেক করে লুপ চালানো ফাইল পড়ার সময় একটি সাধারণ এবং কার্যকর পদ্ধতি।
  • ফাইল হ্যান্ডলিংয়ের কাজের শেষে fclose() ব্যবহার করে ফাইল বন্ধ করা সবসময়ই নিরাপদ প্রোগ্রামিংয়ের চর্চা।

এই ফাংশনগুলো ব্যবহার করে ফাইল হ্যান্ডলিংয়ের কার্যক্রম আরও নির্ভুল এবং নির্ভরযোগ্যভাবে সম্পাদন করা সম্ভব।

Content added By
Promotion

Are you sure to start over?

Loading...