সাধারণ ফাইল এররসমূহ
- ফাইলের শেষে পড়া শেষ হয়ে গেলেও পড়া চালানোর চেষ্টা।
- ডিভাইস ওভারফ্লো।
- অবৈধ ফাইল খোলার চেষ্টা।
- ভুল মোডে ফাইল খোলা (যেমন রিড-অনলি ফাইলে রাইট করার চেষ্টা)।
এরর হ্যান্ডলিং ফাংশনগুলো
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.