#include /* Το unistd.h είναι ένα επικεφαλής αρχείο το οποίο περιέχει τις συ-ναρτήσεις επεξεργασίας αρχείων χαμηλού επιπέδου */ #include #define BUF_SIZE 128 main( ) { char buf[BUF_SIZE]; int fda, fdb, t; // Προσπάθεια για δημιουργία αρχείου if((fda=creat("testdisk.dat",1)) == -1) { printf("Το αρχείο δεν ανοίγει\n"); exit(1); } // Επαναλήψεις για την είσοδο των δεδομένων από το πληκτρο-λόγιο do { gets(buf); if (write(fda, buf, BUF_SIZE) != BUF_SIZE) { printf("Πρόβλημα κατά την εγγραφή\n"); exit(2); } } while ( buf[0] != '*'); // Έλεγχος τέλους των δεδομένων close(fda); // Κλείνει το αρχείο // Προσπάθεια να ανοίξει το αρχείο το οποίο μόλις έκλεισε if((fdb=open("testdisk.dat", 0)) == -1) { printf("Το αρχείο δεν ανοίγει\n"); exit(2); } // Επαναλήψεις για την ανάγνωση των δεδομένων από το αρχείο do { if(read(fdb,buf,BUF_SIZE) < 0) { printf("Πρόβλημα κατά την ανάγνωση\n"); exit(3); } printf(buf); // Εμφάνιση της εγγραφής // Έλεγχος του τέλους των δεδομένων του αρχείου } while ( buf[0] != '*'); close(fdb); // Κλείνει το αρχείο // Προσπάθεια να διαγραφεί το αρχείο το οποίο μόλις έκλεισε t=unlink ("testdisk.dat"); if(t == -1 ) printf("\n Το αρχείο δεν διαγράφηκε\n"); if(t == 0 ) printf("\n Το αρχείο έχει διαγραφεί\n"); }