6.1 Η διαχείριση αρχείων στην γλώσσα C

Η διαχείριση αρχείων στη γλώσσα C αναφέρεται στις διάφορες ενέργειες που μπορούν να γίνουν για την ανάγνωση και εγγραφή δεδομένων από/προς αρχεία. Η C παρέχει έναν αριθμό από βιβλιοθήκες και συναρτήσεις που επιτρέπουν τη διαχείριση αρχείων.

Για να διαχειριστείτε ένα αρχείο στη γλώσσα C, πρέπει να ανοίξετε το αρχείο χρησιμοποιώντας τη συνάρτηση fopen(), η οποία επιστρέφει έναν δείκτη στο αρχείο. Έπειτα, μπορείτε να διαβάσετε ή να γράψετε δεδομένα στο αρχείο χρησιμοποιώντας συναρτήσεις όπως οι fscanf(), fprintf(), fgets() και fputs(). Μετά την ολοκλήρωση των εργασιών σας, πρέπει να κλείσετε το αρχείο χρησιμοποιώντας τη συνάρτηση fclose().

Επιπλέον, μπορείτε να εκτελέσετε διάφορες ενέργειες σχετικές με τα αρχεία, όπως έλεγχος της ύπαρξης ενός αρχείου, μετονομασία ή διαγραφή αρχείων, χρησιμοποιώντας τις σχετικές συναρτήσεις όπως οι stat(), rename() και remove().

Η διαχείριση αρχείων στην C είναι σημαντική για την αποθήκευση και ανάκτηση δεδομένων από μακροπρόθεσμη αποθήκευση, όπως αρχεία κειμένου, αρχεία δυαδικού κώδικα, αρχεία καταγραφής και άλλα. Η κατανόηση των αρχείων και των σχετικών συναρτήσεων στη γλώσσα C είναι σημαντική για την ανάπτυξη προηγμένων προγραμμάτων που απαιτούν αποθήκευση και ανάκτηση δεδομένων.

Στη γλώσσα C, μπορείτε να διαχειριστείτε αρχεία δημιουργώντας, ανοίγοντας, διαβάζοντας και γράφοντας σε αυτά. Αυτό γίνεται δηλώνοντας ένα δείκτη τύπου FILE και χρησιμοποιώντας τη συνάρτηση fopen().

Για να δημιουργήσετε ένα αρχείο, μπορείτε να χρησιμοποιήσετε τη συνάρτηση fopen() με την παράμετρο “w” (write). Αυτό θα δημιουργήσει ένα κενό αρχείο, έτοιμο για εγγραφή. Εάν το αρχείο υπάρχει ήδη, η προηγούμενη περιεχόμενη διαγράφεται.

Για να ανοίξετε ένα αρχείο για ανάγνωση ή εγγραφή, μπορείτε να χρησιμοποιήσετε τη συνάρτηση fopen() με την παράμετρο “r” (read) για ανάγνωση ή “a” (append) για εγγραφή στο τέλος του αρχείου χωρίς να διαγράφεται η προηγούμενη περιεχόμενη.

Για την ανάγνωση και την εγγραφή δεδομένων στο αρχείο, μπορείτε να χρησιμοποιήσετε συναρτήσεις όπως η fscanf() για ανάγνωση από το αρχείο και η fprintf() για εγγραφή στο αρχείο.

Όταν τελειώσετε την εργασία σας με το αρχείο, πρέπει να το κλείσετε χρησ

ιμοποιώντας τη συνάρτηση fclose() για να απελευθερώσετε τους πόρους μνήμης που χρησιμοποιήθηκαν για το ανοιγμένο αρχείο.

Παράδειγμα:

Ας υποθέσουμε ότι έχουμε ένα αρχείο με όνομα “example.txt” που περιέχει τα παρακάτω δεδομένα:

John Doe
Jane Smith
Alex Johnson

Παρακάτω παραθέτω ένα παράδειγμα κώδικα στη γλώσσα C που διαβάζει τα ονόματα από το αρχείο και τα εκτυπώνει στην οθόνη:

#include <stdio.h>

int main() {
    FILE *file = fopen("example.txt", "r");  // Άνοιγμα του αρχείου "example.txt" σε λειτουργία ανάγνωσης
    if (file == NULL) {
        printf("Αδυναμία ανοίγματος αρχείου.\n");  // Εκτύπωση μηνύματος σφάλματος αν δεν είναι δυνατό να ανοίξει το αρχείο
        return 1;  // Επιστροφή τιμής 1 για να υποδηλώσει αποτυχία
    }

    char name[100];
    while (fgets(name, sizeof(name), file) != NULL) {
        printf("Όνομα: %s", name);  // Εκτύπωση του περιεχομένου του αρχείου γραμμή-γραμμή
    }

    fclose(file);  // Κλείσιμο του αρχείου
    return 0;  // Επιστροφή τιμής 0 για να υποδηλώσει επιτυχή ολοκλήρωση
}

Στο παραπάνω παράδειγμα, ανοίγουμε το αρχείο “example.txt” για ανάγνωση (με την παράμετρο “r”) χρησιμοποιώντας τη συνάρτηση fopen(). Έπειτα, ελέγχουμε εάν η ανοίξη του αρχείου ήταν επιτυχής (αν ο δείκτης file είναι NULL, τότε δεν ανοίξαμε το αρχείο με επιτυχία) και εμφανίζουμε αντίστοιχο μήνυμα λάθους.

Στη συνέχεια, χρησιμοποιούμε τη συνάρτηση fgets() για να διαβάσουμε τα ονόματα γραμμή-προς-γραμμή από το αρχείο, και τα εκτυπώνουμε στην οθόνη χρησιμοποιώντας τη συνάρτηση printf(). Το sizeof(name) χρησιμοποιείται για να προσδιορίσει το μέγεθος του πίνακα name, ώστε να μ

ην υπερβούμε τον αρχικοποιημένο χώρο μνήμης.

Τέλος, κλείνουμε το αρχείο με τη συνάρτηση fclose() για να απελευθερώσουμε τους πόρους μνήμης που χρησιμοποιήθηκαν για το αρχείο.

Όταν εκτελέσετε τον παραπάνω κώδικα, θα εμφανιστεί στην οθόνη το παρακάτω αποτέλεσμα:

Όνομα: John Doe
Όνομα: Jane Smith
Όνομα: Alex Johnson

Αυτό δείχνει ότι τα ονόματα διαβάστηκαν από το αρχείο και εμφανίστηκαν στην οθόνη.

Η παράμετρος “filename” αναφέρεται στο όνομα του αρχείου που επιθυμούμε να ανοίξουμε ή να δημιουργήσουμε. Το όνομα πρέπει να περιλαμβάνει την επέκταση του αρχείου, π.χ. “filename.txt”.

Η παράμετρος “mode” είναι ένας μοναδικός χαρακτήρας που καθορίζει τη λειτουργία που θέλουμε να εκτελέσουμε στο αρχείο. Οι πιθανές τιμές είναι:

  • “w”: Ανοίγει το αρχείο για εγγραφή. Αν το αρχείο υπάρχει, το περιεχόμενό του διαγράφεται και μπορούμε να γράψουμε νέα δεδομένα σε αυτό.
  • “a”: Ανοίγει το αρχείο για προσθήκη νέων δεδομένων. Οι νέες εγγραφές προστίθενται στο τέλος του αρχείου, χωρίς να διαγράφεται το παρόν περιεχόμενο.
  • “r”: Ανοίγει το αρχείο για ανάγνωση. Μπορούμε να διαβάσουμε το περιεχόμενο του αρχείου, αλλά δεν μπορούμε να το αλλάξουμε.

Για να δημιουργήσουμε ένα αρχείο, μπορούμε να χρησιμοποιήσουμε τη συνάρτηση fopen() με την παράμετρο “mode” που έχει την τιμή “w”.

Η λειτουργία w χρησιμοποιείται για εγγραφή σε ένα αρχείο. Ωστόσο, αν το αρχείο δεν υπάρχει, θα δημιουργηθεί ένα νέο αρχείο:

#include <stdio.h>

int main() {
    FILE *fp; // Δήλωση δείκτη σε αρχείο

    fp = fopen("file.txt", "w"); // Άνοιγμα αρχείου για εγγραφή

    fprintf(fp, "This is some text that we're writing to a file.\n"); // Εγγραφή κειμένου στο αρχείο

    fclose(fp); // Κλείσιμο αρχείου

    return 0;
}

Ο παραπάνω κώδικας δημιουργεί ένα αρχείο με όνομα “file.txt” και εγγράφει το κείμενο “This is some text that we’re writing to a file.” μέσα στο αρχείο. Αυτό επιτυγχάνεται με τη χρήση των παρακάτω βημάτων:

  1. Συνάρτηση fopen: Η συνάρτηση ανοίγει το αρχείο “file.txt” για εγγραφή και επιστρέφει έναν δείκτη σε αυτό το αρχείο. Ο δείκτης αποθηκεύεται στη μεταβλητή fp.
  2. Συνάρτηση fprintf: Η συνάρτηση χρησιμοποιείται για να εγγράψει το κείμενο “This is some text that we’re writing to a file.” στο ανοιχτό αρχείο. Η fprintf αναλαμβάνει την εκτύπωση του κειμένου στο αρχείο που δείχνει ο δείκτης fp.
  3. Συνάρτηση fclose: Η συνάρτηση κλείνει το ανοιχτό αρχείο. Αυτό είναι σημαντικό για να απελευθερωθούν οι πόροι του συστήματος που συσχετίζονται με το ανοικτό αρχείο.

Ο κώδικας δημιουργεί ένα αρχείο κειμένου και εγγράφει το κείμενο μέσα σε αυτό το αρχείο. Μετά την εκτέλεση του προγράμματος, θα δημιουργηθεί ένα αρχείο με όνομα “file.txt”, και το κείμενο “This is some text that we’re writing to a file.” θα είναι εγγεγραμμένο σε αυτό το αρχείο.

21 Ιουνίου, 2023
top
error: Content is protected !!
Μετάβαση σε γραμμή εργαλείων