Οι κλήσεις πρόσβασης σε αρχεία
-
Η κλήση του λειτουργικού συστήματος open(filename, mode) επιτρέπει
την πρόσβαση στο αρχείο με όνομα filename και επιστρέφει
έναν ακέραιο περιγραφέα του αρχείου ο οποίος χρησιμοποιείται
στις επόμενες κλήσεις πρόσβασης σε αυτό (read/write/close).
Το όρισμα mode πρέπει να είναι 0 για να προσδιορίσουμε ανάγνωση από το αρχείο.
-
Η κλήση του λειτουργικού συστήματος read(fd, buff, size) επιτρέπει
την ανάγνωση count το πολύ χαρακτήρων από το αρχείο που προσδιορίζεται
με τον ακέραιο περιγραφέα fd στον ενταμιευτή buff.
Η συνάρτηση read επιστρέφει τον αριθμό των χαρακτήρων που διαβάστηκαν.
-
Ο ενταμιευτής buff ορίζεται συνήθως ως ένας πίνακας χαρακτήρων:
char buff[1024];
-
Η κλήση του λειτουργικού συστήματος write(fd, buff, count) επιτρέπει
την εγγραφή count χαρακτήρων από τον ενταμιευτή buff
στο αρχείο που προσδιορίζεται με τον ακέραιο περιγραφέα fd.
-
Ο ακέραιος περιγραφέας 0 ορίζει την κανονική είσοδο της διεργασίας
και ο ακέραιος περιγραφέας 1 την κανονική έξοδο.
Για παράδειγμα η κλήση write(1, "hello", 4) θα τυπώσει hello στην
κανονική έξοδο της διεργασίας (την οθόνη αν δεν έχει αλλάξει).
-
Η κλήση του λειτουργικού συστήματος close(fd) δηλώνει
ότι δε θα υπάρξει άλλη επικοινωνία read/write
με το αρχείο που προσδιορίζεται από τον ακέραιο περιγραφέα fd.
Άσκηση
Με βάση τα παραπάνω γράψτε το πρόγραμμα mycat το οποίο εκτυπώνει το
περιεχόμενο των αρχείων που του δίδονται ως παράμετροι.
Για ευκολία στην αρχή υλοποιήστε το mycat για ένα μόνο αρχείο με μέγεθος
μικρότερο από 1024 byte.
Παράδειγμα
kerkis:~$ mycat /etc/motd
Linux 2.0.30.
kerkis:~$