Κλήση συστήματος: Διαφορά μεταξύ των αναθεωρήσεων

Περιεχόμενο που διαγράφηκε Περιεχόμενο που προστέθηκε
JohnMad (συζήτηση | συνεισφορές)
μΧωρίς σύνοψη επεξεργασίας
JohnMad (συζήτηση | συνεισφορές)
Γραμμή 8:
Στα συστήματα [[Unix]] οι κλήσεις συστήματος, οι οποίες χαρακτηρίζονται από ένα αναγνωριστικό όνομα και έναν αριθμό [[παράμετρος (υπολογιστές)|παραμέτρων]], εκτελούνται μέσα από κατάλληλες συναρτήσεις της γλώσσας προγραμματισμού C, ομαδοποιημένες σε [[βιβλιοθήκη (υπολογιστές)|βιβλιοθήκες]] του συστήματος. Οι βιβλιοθήκες αυτές συνήθως διατηρούν εσωτερική «κατάσταση» (καθολικές [[μεταβλητή (υπολογιστές)|μεταβλητές]] και δομές δεδομένων), οπότε συνδέονται στατικά κατά τη μεταγλώττιση ενός προγράμματος με αυτό· έτσι κάθε εφαρμογή έχει ενσωματωμένο το δικό της στιγμιότυπο των βιβλιοθηκών συστήματος που χρησιμοποιεί.
 
Κάθε κλήση συστήματος επιστρέφει έναν ακέραιο αριθμό στη συνάρτηση που την κάλεσε· αρνητική τιμή επιστροφής σημαίνει αποτυχία ενώ θετική σημαίνει επιτυχία. Σε περίπτωση αποτυχίας ο κωδικός λάθους αποθηκεύεται στην '''errno''', μία εσωτερική καθολική μεταβλητή που διατηρεί αυτομάτως το λειτουργικό σύστημα για κάθε διεργασία ξεχωριστά. Η τιμή της errno διατηρείται μέχρι την επόμενη κλήση συστήματος, ασχέτως αν αυτή θα είναι επιτυχής ή αποτυχημένη. Το μήνυμα που αντιστοιχεί στον τρέχοντα κωδικό λάθους της errno επιστρέφεται από τη συνάρτηση <code>strerror()</code> που παρέχει η γλώσσα C σε περιβάλλοντα Unix, ενώ εκτύπωση αυτού του μηνύματος γίνεται με την αντίστοιχη συνάρτηση <code>perror()</code>.
 
Η προγραμματιστική διασύνδεση των κλήσεων συστήματος των διαφόρων εκδοχών του Unix οριστικοποιήθηκε με τη σειρά προτύπων '''[[POSIX]]''' ([[IEEE]] 1003), τα οποία επίσης καθόριζαν και άλλες λεπτομέρειες του ΛΣ όπως το [[κέλυφος (υπολογιστές)|κέλυφος]] [[γραμμή εντολών|γραμμής εντολών]]. Έτσι ο [[πηγαίος κώδικας]] ενός προγράμματος μπορεί να μεταγλωττιστεί σε οποιοδήποτε λειτουργικό σύστημα ακολουθεί το πρότυπο POSIX χωρίς αλλαγές, ενώ η συμμόρφωση με το POSIX αποτελεί προϋπόθεση για να μπορεί ένα λειτουργικό σύστημα να αποκαλείται Unix.