3.1 Η Xlib


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

Τα αναγκαία για να ξεκινήσει κανείς είναι γνώσεις προγραμματισμού με τη γλώσσα C και ορισμένες γνώσεις του λειτουργικού συστήματος πάνω στο οποίο δουλεύουν τα Χ Windows, το οποίο συνήθως είναι το UNIX (και στη δική μας περίπτωση). Για την μεταγλώττιση ενός προγράμματος C στο UNIX μπορούμε να χρησιμοποιήσουμε ένα από τους υπάρχοντες μεταγλωττιστές (compilers). Σε κάθε σύστημα UNIX υπάρχει πάντα ο cc (C Compiler) ο οποίος είναι ένας τυπικός ANSI μεταγλωττιστής, ενώ σε αρκετά συστήματα υπάρχει και ο gcc (GNU C Compiler) ο οποίος προσφέρει ορισμένες επιπλέον δυνατότητες. Στην δική μας περίπτωση θα χρησιμοποιηθεί ο cc (χωρίς αυτό να έχει ιδιαίτερη σημασία). Τα include files των Χ Windows βρίσκονται συνήθως στο directory /usr/include/X11 . Από αυτά το βασικότερο είναι το αρχείο Xlib.h το οποίο περιέχει τους ορισμούς των σημαντικότερων δομών των X Windows, καθώς και τους ορισμούς των συναρτήσεων της Xlib. Επιπλέον το αρχείο Xlib.h συμπεριλαμβάνει αυτομάτως και το αρχείο X.h το οποίο περιέχει τις δηλώσεις διαφόρων σταθερών (#define...) που χρησιμοποιούνται ως ορίσματα στις διάφορες συναρτήσεις της Xlib. Τα παραπάνω καθιστούν το αρχείο Xlib.h αναγκαίο να συμπεριλαμβάνεται σε κάθε αρχείο κώδικα C που χρησιμοποιεί την Xlib.

Έστω ότι έχουμε το αρχείο foo.c που χρησιμοποιεί συναρτήσεις της Xlib. Για να το μεταγλωττίσουμε δίνουμε:

     cc foo.c -lX11 -o foo
με την οποία ζητούμε από τον μεταγλωττιστή (cc) να μεταγλωττίσει το αρχείο foo.c και να δώσει στην έξοδο το εκτελέσιμο αρχείο με το όνομα foo. Με το όρισμα -lX11 ζητούμε το linking να γίνει μαζί με την αναγκαία βιβλιοθήκη των Χ Windows (/usr/lib/libX11.a). Σε αρκετές περιπτώσεις μπορεί να χρειαστούν σε μια εφαρμογή οι συναρτήσεις κάποιας άλλης βιβλιοθήκης (γύρω από τα Χ Windows έχουν αναπτυχθεί πολλές βιβλιοθήκες με χρήσιμες συναρτήσεις), για παράδειγμα της βιβλιοθήκης libXpm.a, στην περίπτωση αυτή προσθέτουμε και την αντίστοιχη παράμετρο -lXpm στην γραμμή εκτέλεσης.

Οι συναρτήσεις της Xlib αρχίζουν πάντα με το κεφαλαίο γράμμα "X" ενώ όσες συναρτήσεις αρχίζουν από άλλο κεφαλαίο γράμμα είναι μακροεντολές που ορίζονται στα include files των Χ Windows τα οποία μπορεί να συμβουλευτεί ο προγραμματιστής για να δει πως ορίζονται.


[prev] [up] [next] [contents] [index]