Πληροφορική & Τηλεπικοινωνίες K25 Ανάπτυξη Λογισμικού Εαρινό Εξάμηνο 2008 Καθηγητής Γιάννης Ιωαννίδης. Επίπεδο Αρχείου Εγγραφών

Σχετικά έγγραφα
Πληροφορική & Τηλεπικοινωνίες K25 Ανάπτυξη Λογισμικού Εαρινό Εξάμηνο 2008 Καθηγητής Γιάννης Ιωαννίδης. Μέρος 2ο: Επίπεδο Ευρετηρίου Β+ Δένδρων

Πληροφορική & Τηλεπικοινωνίες. K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο

'Ασκηση 1: Στατικός Κατακερματισμός. Εισαγωγή. Ρουτίνες υλοποίησης κατακερματισμού. (Ημερομηνία Παράδοσης: Παρασκευή, 16/5/2008, 5μμ) HT_Init()

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστηµάτων Βάσεων εδοµένων Εαρινό Εξάµηνο

Πληροφορική & Τηλεπικοινωνίες Υλοποίηση Συστημάτων Βάσεων Δεδομένων - Χειμερινό Εξάμηνο Καθηγητής Δ. Γουνόπουλος

Πληροφορική & Τηλεπικοινωνίες. K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Χειμερινό Εξάμηνο

Πληροφορική & Τηλεπικοινωνίες. K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο

Πληροφορική & Τηλεπικοινωνίες Υλοποίηση Συστημάτων Βάσεων Δεδομένων - Χειμερινό Εξάμηνο Καθηγητής Δ. Γουνόπουλος

Πληροφορική & Τηλεπικοινωνίες K25 Ανάπτυξη Λογισμικού Εαρινό Εξάμηνο 2008 Καθηγητής Γιάννης Ιωαννίδης. Επίπεδο Αρχείου Μπλοκ

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο

Πληροφορική & Τηλεπικοινωνίες Υλοποίηση Συστημάτων Βάσεων Δεδομένων - Χειμερινό Εξάμηνο Καθηγητής Δ. Γουνόπουλος

Πληροφορική & Τηλεπικοινωνίες

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Χειμερινό Εξάμηνο M. Χατζόπουλος. Προθεσμία: 19/01/2015

Πληροφορική & Τηλεπικοινωνίες K25 Ανάπτυξη Λογισμικού Εαρινό Εξάμηνο 2008 Καθηγητής Γιάννης Ιωαννίδης

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Εισαγωγή στον Προγραμματισμό

Εργαστήριο 2ο. Περίγραμμα Εργαστηριακής Άσκησης

Ανάπτυξη και Σχεδίαση Λογισμικού

Εισαγωγή στον Προγραμματισμό

Προγραμματισμός Ι. Εγγραφές. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

HY150a Φροντιστήριο 3 24/11/2017

Βιβλιοθήκες Αφηρημένοι τύποι δεδομένων. Προγραμματισμός II 1

Στόχοι και αντικείμενο ενότητας. Τύπος πίνακα. Τύπος πίνακα (συν.) #6. Πίνακες και Δείκτες

Προγραμματισμός Η/Υ (ΤΛ2007 )

Γ7.2 Συμβολοσειρές (Strings) Γ Λυκείου Κατεύθυνσης

Εισαγωγή στον Προγραμματισμό

Προγραμματισμός Ι (ΗΥ120)

Asset Management Software Client Module. Οδηγός χρήσης

S, (5, -3, 34, -23, 7) ( *, _

Επεξεργασία Αρχείων Κειµένου

Προγραμματισμός Ι (ΗΥ120)

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ

Τύποι Δεδομένων Είσοδος/Έξοδος

ΑΡ Χ Ε Ι Α Κ Ε Ι Μ Ε Ν Ο Υ (text files)

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Ασκήσεις 7: Πρόγραμμα Συνδεδεμένης Λίστας και Διαδικασιών. Μανόλης Γ.Η.

Δομημένος Προγραμματισμός

Προγραμματισμός Ι. Δείκτες. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 29/11/07

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2018 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος

Κεφάλαιο Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C

Υπολογισμός - Εντολές Ελέγχου

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Μεθόδων Επίλυσης Προβλημάτων

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. (Διάλεξη 15)

Εργαστήριο 08 Δημιουργία 1 ου Συντακτικού Αναλυτή

Διαδικασιακός Προγραμματισμός

Προγραμματισμός Η/Υ. Ενότητα 6: Πίνακες και Δείκτες

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Document Scanning System Ιανουάριος, 2014

Η βασική συνάρτηση προγράμματος main()

Προγραμματισμός Ι. Προχωρημένα Θέματα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Η/Υ (ΤΛ2007 )

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΕΡΓΑΣΙΕΣ ΟΝΤΟΚΕΝΤΡΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #15

Δείκτες (Pointers) Ένας δείκτης είναι μια μεταβλητή με τιμή μια διεύθυνση μνήμης. 9.8

Δομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Δομημένος Προγραμματισμός

Ανάπτυξη και Σχεδίαση Λογισμικού

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός I (Θ)

Προγραμματισμός Η/Υ (ΤΛ2007 )

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος

Αντικειμενοστραφής Προγραμματισμός

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

Διάλεξη 2: Επανάληψη Προγραμματισμού Συμβολοσειρές (strings) Διδάσκων: Παναγιώτης Ανδρέου

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού

HY-486 Αρχές Κατανεμημένου Υπολογισμού

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος Προγραμματιστική Εργασία - 2o Μέρος

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Οντοκεντρικός Προγραμματισμός

ΗΥ240: Δοµές Δεδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία - 1 ο Μέρος

Ειδικά Θέματα Προγραμματισμού

Διαδικασιακός Προγραμματισμός

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language)

Πως θα αποθηκεύσει τη λίστα με τα ψώνια του και θα την ανακτήσει στο Σ/Μ; και πως θα προσθέσει στη λίστα του επιπλέον προϊόντα;

Κλάσεις και αντικείμενα #include <iostream.h<

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

Προγραμματισμός Ι. Κλάσεις και Αντικείμενα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Διαδικασιακός Προγραμματισμός

Τεχνολογία και Προγραμματισμός Υπολογιστών. Η γλώσσα προγραμματισμού C

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 8/4/2008. Πίνακες (Arrays)

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

lab13grades Άσκηση 2 -Σωστά απελευθερώνετε ολόκληρη τη λίστα και την κεφαλή

Δημιουργία και Σύνδεση με Στήλες Βιβλίου

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Transcript:

Πληροφορική & Τηλεπικοινωνίες K25 Ανάπτυξη Λογισμικού Εαρινό Εξάμηνο 2008 Καθηγητής Γιάννης Ιωαννίδης Επίπεδο Αρχείου Εγγραφών Εισαγωγή Το επίπεδο Αρχείου Εγγραφών δίνει ρουτίνες για τη διαχείριση αδόμητων αρχείων σε επίπεδο εγγραφών. Τα ονόματα όλων των ρουτινών αρχίζουν με το πρόθεμα HF, ώστε να υποδεικνύουν το γεγονός ότι πρόκειται για υλοποίηση αρχείου χωρίς δομή (HF=Heap File. Το HF επίπεδο στηρίζεται στο BF. Ρουτίνες Υλοποίησης Επιπέδου Αρχείου Εγγραφών HF_Init( void HF_Init( void Η ρουτίνα αυτή χρησιμοποιείται για την αρχικοποίηση της HF διεπαφής. Πρέπει να καλείται προτού χρησιμοποιηθούν οι HF ρουτίνες. Δεν έχει καμμία παράμετρο εισόδου και δεν παράγει καμμία έξοδο. HF_CreateFile( int HF_CreateFile( char *filename, /* όνομα αρχείου */ Η ρουτίνα αυτή δημιουργεί και αρχικοποιεί ένα αρχείο με όνομα filename. Το αρχείο δεν πρέπει να υπάρχει ήδη. Επιστρέφει HFE_OK εάν το καινούργιο αρχείο δημιουργηθεί με επιτυχία, ειδ' αλλοιώς κάποιον κωδικό σφάλματος. HF_DestroyFile( int HF_DestroyFile( char *filename /* όνομα αρχείου */

Η ρουτίνα αυτή καταστρέφει το αρχείο filename, σβήνοντας όλα τα δεδομένα του. Το αρχείο πρέπει να υπάρχει ήδη αλλά να μην είναι ανοιχτό. Επιστρέφει HFE_OK εάν επιτύχει, ειδ' αλλοιώς κάποιον κωδικό σφάλματος. HF_OpenFile( int HF_OpenFile ( char *filename /* όνομα αρχείου */ Η ρουτίνα αυτή ανοίγει το αρχείο filename. Εάν το αρχείο ανοιχτεί κανονικά, η ρουτίνα επιστρέφει έναν μικρό μη αρνητικό ακέραιο, ο οποίος χρησιμοποιείται για να αναγνωρίζεται το αρχείο, ειδ' αλλοιώς επιστρέφει κάποιον κωδικό σφάλματος. Ένα αρχείο μπορεί να έχει ανοιχτεί παραπάνω από μία φορές. HF_CloseFile( int HF_CloseFile ( int filedesc /* αριθμός που αντιστοιχεί σε ανοιχτό αρχείο */ Η ρουτίνα αυτή κλείνει το αρχείο με αναγνωριστικό αριθμό filedesc. Επιστρέφει HFE_OK εάν το αρχείο κλείσει επιτυχώς, ειδ' αλλοιώς κάποιον κωδικό σφάλματος. HF_InsertRec( int HF_InsertRec( char *record, /* δείκτης προς τα περιεχόμενα εγγραφής */ Η ρουτίνα εισάγει την εγγραφή που δείχνει ο δείκτης record στο ανοιχτό αρχείο με αναγνωριστικό αριθμό filedesc. Το μέγεθος της εγγραφής είναι recordsize. Η ρουτίνα επιστρέφει ένα έναν μη αρνητικό ακέραιο ως το αναγνωριστικό εγγραφής (recid το οποίο έχει ανατεθεί στη νεοεισελθούσα εγγραφή, αν η εισαγωγή είναι επιτυχής, ειδ' αλλοιώς έναν κωδικό σφάλματος. HF_DeleteRec( int HF_DeleteRec( int recid, /* αναγνωριστικό εγγραφής */ Η ρουτίνα διαγράφει την εγγραφή που υποδηλώνεται από το αναγνωριστικό εγγραφής recid από το ανοιχτό αρχείο με αναγνωριστικό αριθμό filedesc. Το μέγεθος της εγγραφής είναι recordsize. Η ρουτίνα επιστρέφει HFE_OK εάν η διαγραφή επιτύχει ή κάποιον κωδικό σφάλματος του επιπέδου HF εάν κάτι δεν λειτουργήσει

HF_GetFirstRec( int HF_GetFirstRec( Η ρουτίνα αυτή ανακτά ένα αντίγραφο της πρώτης εγγραφής του αρχείου με αναγνωριστικό αριθμό filedesc. Το μέγεθος της εγγραφής είναι recordsize. Αν πετύχει, τότε επιστρέφει το αντίστοιχο αναγνωριστικό εγγραφής (recid ενώ τα περιεχόμενα της ίδιας της εγγραφής μπαίνουν στο χώρο που δείχνει ο δείκτης record. Ειδ' αλλοιώς, η ρουτίνα επιστρέφει HFE_EOF εάν είμαστε στο τέλος του αρχείου (δηλαδή, εάν το αρχείο δεν έχει καμμία εγγραφή, ή κάποιον άλλον κωδικό σφάλματος εάν κάτι δεν λειτουργήσει όπως πρέπει. HF_GetNextRec( int HF_GetNextRec( int recid, /* αναγνωριστικό προηγούμενης εγγραφής */ Η ρουτίνα αυτή ανακτά ένα αντίγραφο της εγγραφής του αρχείου με αναγνωριστικό αριθμό filedesc που βρίσκεται μετά την εγγραφή με αναγνωριστικό εγγραφής recid. Το μέγεθος της εγγραφής είναι recordsize. Αν πετύχει, τότε επιστρέφει το αντίστοιχο αναγνωριστικό εγγραφής (recid ενώ τα περιεχόμενα της ίδιας της εγγραφής μπαίνουν στο χώρο που δείχνει ο δείκτης record. Ειδ' αλλοιώς, η ρουτίνα επιστρέφει HFE_EOF εάν έχουμε φτάσει στο τέλος του αρχείου, ή κάποιον άλλον κωδικό σφάλματος εάν κάτι δεν λειτουργήσει HF_GetThisRec( int HF_GetThisRec( int recid, /* αναγνωριστικό εγγραφής */ Η ρουτίνα αυτή ανακτά ένα αντίγραφο της εγγραφής με αναγνωριστικό εγγραφής recid του αρχείου με αναγνωριστικό αριθμό filedesc Το μέγεθος της εγγραφής είναι recordsize. Αν πετύχει, τότε επιστρέφει HFE_OK ενώ τα περιεχόμενα της ίδιας της εγγραφής μπαίνουν στο χώρο που δείχνει ο δείκτης record. Ειδ' αλλοιώς, η ρουτίνα επιστρέφει HFE_INVALIDRECORD εάν η τιμή του recid δεν αντιστοιχεί σε αναγνωριστικό αριθμό υπαρκτής εγγραφής, ή κάποιον άλλον κωδικό σφάλματος εάν κάτι δεν λειτουργήσει HF_OpenFileScan( int HF_OpenFileScan( int recordsize, /* μέγεθος κάθε εγγραφής του αρχείου */ char attrtype, /* τύπος πεδίου: 'c', 'i', ή 'f' */

int attrlength, /* μέγεθος πεδίου σε μπάιτ: 4 για 'i' ή 'f', 1-255 για 'c' */ int attroffset, /* απόσταση πεδίου σε μπάιτ από την αρχή της εγγραφής */ int op, /* τελεστής σύγκρισης */ char *value /* δείκτης προς τιμή για σύγκριση */ Η ρουτίνα αυτή ξεκινά μια σάρωση των εγγραφών του αρχείου με αναγνωριστικό αριθμό filedesc οι οποίες έχουν στο σημείο (πεδίο που προσδιορίζεται τιμές που ικανοποιούν την καθορισμένη συνθήκη. Το μέγεθος της εγγραφής είναι recordsize. Αν η παράμετρος value έχει μηδενικό δείκτη ως τιμή (null, τότε ξεκινά σάρωση όλων των εγγραφών ανεξαρτήτως των τιμών των παραμέτρων attrtype, attrlength, attroffset, και op. Ειδ' αλλοιώς, ο δείκτης value δείχνει στην τιμή με την οποία τα αντίστοιχα σημεία των εγγραφών πρέπει να συγκριθούν σύμφωνα με τον τελεστή op. Ο μη αρνητικός ακέραιος που επιστρέφεται από τη ρουτίνα αντιπροσωπεύει το αναγνωριστικό της σάρωσης. Η παράμετρος op καθορίζει τον τρόπο με τον οποίο η τιμή που δείχνει ο δείκτης value πρέπει να συγκριθεί με τις προσδιορισμένες τιμές από τις εγγραφές. ΟΙ διαφορετικές επιλογές για την τιμή της παραμέτρου op είναι οι εξής: 1 για EQUAL (δηλαδή, attribute = value 2 για LESS THAN (δηλαδή, attribute < value 3 για GREATER THAN (δηλαδή, attribute > value 4 για LESS THAN OR EQUAL (δηλαδή, attribute <= value 5 για GREATER THAN OR EQUAL (δηλαδή, attribute >= value 6 για NOT EQUAL (δηλαδή, attribute!= value HF_FindNextRec( int HF_FindNextRec( int scandesc, /* αριθμός που αντιστοιχεί σε ενεργή σάρωση */ char *record /* δείκτης προς τα περιεχόμενα της εγγραφής που ζητήθηκε */ Η ρουτίνα αυτή ανακτά ένα αντίγραφο της επόμενης εγγραφής που συναντά κατά τη σάρωση με αναγνωριστικό σάρωσης scandesc και που ικανοποιεί τη συνθήκη της σάρωσης. Αν πετύχει, τότε επιστρέφει το αντίστοιχο αναγνωριστικό εγγραφής (recid ενώ τα περιεχόμενα της ίδιας της εγγραφής μπαίνουν στο χώρο που δείχνει ο δείκτης record. Ειδ' αλλοιώς, η ρουτίνα επιστρέφει HFE_EOF εάν έχουμε φτάσει στο τέλος του αρχείου, ή κάποιον άλλον κωδικό σφάλματος εάν κάτι δεν λειτουργήσει HF_CloseFileScan( int HF_CloseFileScan( int scandesc /* αριθμός που αντιστοιχεί σε ενεργή σάρωση */ Η ρουτίνα αυτή τερματίζει τη σάρωση με αναγνωριστικό σάρωσης scandesc. Αν πετύχει, τότε επιστρέφει HFE_OK, ειδ' αλλοιώς, κάποιον κωδικό σφάλματος. HF_PrintError( void HF_PrintError( char *errstring /* κείμενο για εκτύπωση */ Η ρουτίνα τυπώνει το κείμενο που δείχνει η παράμετρος errstring, και μετά τυπώνει το μήνυμα που

αντιστοιχεί στο τελευταίο σφάλμα που προέκυψε από οποιαδήποτε από τις ρουτίνες του επιπέδου HF. Η ρουτίνα αυτή δεν έχει δική της τιμή επιστροφής.