सामान्य फाइल एरर्स
- फाइल के अंत से आगे पढ़ने का प्रयास।
- डिवाइस ओवरफ्लो।
- अमान्य फाइल खोलने का प्रयास।
- गलत मोड में फाइल खोलकर ऑपरेशन करना।
एरर हैंडलिंग फंक्शन्स
- ferror(): रीड/राइट ऑपरेशन में एरर डिटेक्ट करता है।
- perror(): एरर मैसेज प्रिंट करता है।
- feof(): फाइल के अंत तक पहुंचने की जांच करता है।
ferror()
सिंटैक्स: int ferror(FILE *fp);
सफलता पर 0 लौटाता है, एरर पर नॉन-जीरो।
FILE *fp;
if (ferror(fp))
printf("Error occurred");
perror()
सिंटैक्स: perror(string_variable);
दिए गए स्ट्रिंग के बाद कोलन, स्पेस और वर्तमान एरर का टेक्स्ट प्रिंट करता है।
FILE *fp;
char str[30] = "Error is";
perror(str);
आउटपुट: Error is: Error 0
feof()
सिंटैक्स: int feof(FILE *fp);
फाइल का अंत पहुंचने पर नॉन-जीरो लौटाता है, अन्यथा 0।
FILE *fp;
if (feof(fp))
printf("Reached end of file");
पूर्ण प्रोग्राम उदाहरण
ferror() और perror() का उपयोग
#include <stdio.h>
int main() {
FILE *fp;
char str[30] = "error is";
int i = 20;
fp = fopen("sample.txt", "r");
if (fp == NULL) {
printf("File does not exist");
} else {
fprintf(fp, "%d", i); // रीड-ओनली मोड में लिखने का प्रयास -> एरर
if (ferror(fp)) {
perror(str);
printf("Error");
}
fclose(fp);
}
return 0;
}
आउटपुट
Error is: Error 1 compiler generated. Error.
feof() का उपयोग
#include <stdio.h>
int main() {
FILE *fp;
int i, n;
fp = fopen("number.txt", "w");
for (i = 0; i <= 100; i += 10)
putw(i, fp);
fclose(fp);
fp = fopen("number.txt", "r");
printf("File content: ");
while (1) {
n = getw(fp);
if (feof(fp)) {
printf("\nReached end of file");
break;
} else {
printf("%d ", n);
}
}
fclose(fp);
return 0;
}
आउटपुट
File content: 10 20 30 40 50 60 70 80 90 100 Reached end of file