Αρχεία στην C
Άνοιγμα και Κλείσιμο αρχείου
| Συνάρτηση | Λειτουργία |
|---|---|
| fopen() | Ανοιγεί ένα αρχείο |
| fclose() | Κλείνει ένα αρχείο |
| feof() | Επιστρέφει true(1) όταν έχουμε ξεπεράσει το τέλος ενός αρχείου |
| ferror() | Επιστρέφει true(1) αν προκύψει κάποιο σφάλμα |
| clearerr() | Καθαρίζει τη κατάσταση σφάλματος για ένα συγκεκριμένο αρχείο. |
| fflush() | Αδειάζει την περιοχή προσωρινής αποθήκευσης εισόδου/εξόδου ενός αρχείου. |
| fflushall() | Αδειάζει την περιοχή προσωρινής αποθήκευσης εισόδου/εξόδου όλων των αρχείων. |
Καταστάσεις που μπόρουμε να ανοίξουμε ένα αρχειο
| Κατάσταση | Τύπος | Λειτουργία | Δείκτης | Σχόλια |
|---|---|---|---|---|
| “r” | Κειμένου | Ανάγνωση | Αρχή | Το αρχείο πρέπει να υπάρχει |
| “w” | Κειμένου | Εγγραφή | Αρχή | Αν υπάρχει το αρχείο διαγράφονται τα περιεχόμενα του. |
| “a” | Κειμένου | Εγγραφή | Τέλος | |
| “r+” | Κειμένου | Ανάγνωση / Εγγραφή | Αρχή | Το αρχείο πρέπει να υπάρχει |
| “w+” | Κειμένου | Ανάγνωση / Εγγραφή | Αρχή | Αν υπάρχει το αρχείο διαγράφονται τα περιεχόμενα του. |
| “a+” | Κειμένου | Ανάγνωση Εγγραφή | Αρχή για ανάγνωση και τέλος για εγγραφή | |
| “rb” | Δυαδικό | Ανάγνωση | Αρχή | Το αρχείο πρέπει να υπάρχει |
| “wb” | Δυαδικό | Εγγραφή | Αρχή | Αν υπάρχει το αρχείο διαγράφονται τα περιεχόμενα του |
| “ab” | Δυαδικό | Εγγραφή | Τέλος | |
| “rb+” | Δυαδικό | Ανάγνωση Εγγραφή | Αρχή | Το αρχείο πρέπει να υπάρχει |
| “wb+” | Δυαδικό | Ανάγνωση Εγγραφή | Αρχή | Αν υπάρχει το αρχείο διαγράφονται τα περιεχόμενα του. |
| “ab+” | Δυαδικό | Ανάγνωση Εγγραφή | Αρχή για ανάγνωση και τέλος για εγγραφή |
Διαβάζοντας από ένα αρχείο
#include <stdio.h>
#include <stdlib.h>
int main() {
FILE *file;
char ch;
// Άνοιγμα του αρχείου
file = fopen("example.txt", "r");
// Έλεγχος αν το αρχείο άνοιξε επιτυχώς
if (file == NULL) {
printf("Αδυναμία ανοίγματος του αρχείου.\n");
return 1;
}
// Διάβασμα χαρακτήρα προς χαρακτήρα και εκτύπωση
while ((ch = fgetc(file)) != EOF) {
printf("%c", ch);
}
// Κλείσιμο του αρχείου
fclose(file);
return 0;
}
Αρχεία Κειμένου
| Συνάρτηση | Λειτουργία |
|---|---|
| fputc() | Γράφει έναν χαρακτήρα σε ένα αρχείο |
| fgetc() | Διαβάζει έναν χαρακτήρα από κάποιο αρχείο |
| fprintf() | Πραγματοποιεί εγγραφή σε ένα αρχείο, όπως η printf στην οθόνη |
| fscanf() | Πραγματοποιεί ανάγνωση από ένα αρχείο, όπως η scanf από το πληκτρολόγιο |
| fgets() | Διαβάζει ένα σύνολο χαρακτήρων από ένα αρχείο |
| fputs() | Γράφει ένα σύνολο χαρακτήρων σε ένα αρχείο. |
| fwrite() | Γράφει σε ένα αρχείο ένα πλ΄θος από τμήματα συγκεκριμένου μεγέθους σε byte, τα οποια διαβάζει από κάποια περιοχή μνήμης. |
| fread() | Έχει παρόμοια σύνταξη με την fwrite(), με την διαφορά ότι διαβαζει από κάποιο αρχείο ένα πλήθος από τμήματα συγκεκριμένου μεγέθους σε byte και τα τοποθετεί σε κάποια περιοχή μνήμης |
Σύνταξη fread()
size_t fread(void *buffer,size_t arbyte, size_t fores, FILE *fp);
Σύνταξη fwrite()
size_t fwrite(void *buffer,size_t arbyte, size_t fores, FILE *fp);
- buffer: Είναι ο δείκτης που δείχνει στην περιοχή της μνλημης απ΄την οποία θα διαβαστούν τα byte που θα εγραφούν στο αρχείο.
- arbyte: Δείχνει τον αριθμό των byte του κάθε τμήματος.
- fores: Δείχνει το πλήθος των τμημάτων που θα διαβαστούν
- fp: Καθαρίζει ρεύμα με το οποίο είναι συνδεδεμένο το αρχείο.