Κλήσεις του λειτουργικού συστήματος Unix σε C

Διομήδης Σπινέλλης
Τμήμα Διοικητικής Επιστήμης και Τεχνολογίας
Οικονομικό Πανεπιστήμιο Αθηνών
dds@aueb.gr

Παράμετροι της διεργασίας

Οι διεργασίες λαμβάνουν τις παραμέτρους τις οποίες έδωσε ο χρήστης στον φλοιό στον πίνακα argv και τον αριθμό των παραμέτρων στη μεταβλητή argc. Αυτές ορίζονται στην C ως ορίσματα της διαδικασίας main με τον παρακάτω τρόπο:
main(int argc, char *argv[])
{
	...
}
Το πρώτο στοιχείο του πίνακα argv, το argv[0], περιέχει πάντα το όνομα της διεργασίας. Τα επόμενα στοιχεία περιέχουν τις αντίστοιχες παραμέτρους. Για παράδειγμα αν ο χρήστης εκτελέσει την εντολή rm foo οι μεταβλητές argc, argv θα έχουν τις παρακάτω τιμές:
argc: 2
argv[0]: "rm"
argv[1]: "foo"

Άσκηση

Με βάση τα παραπάνω γράψτε το πρόγραμμα myecho το οποίο εκτυπώνει τις παραμέτρους που του δώσατε.

Παράδειγμα

kerkis:~$ myecho hello world
hello world          
kerkis:~$ 

Η κλήση mkdir

Η κλήση του λειτουργικού συστήματος mkdir δημιουργεί έναν νέο κατάλογο. Έχει ως όρισμα το όνομα του νέου καταλόγου και τις άδειες πρόσβασης με τις οποίες πρέπει να δημιουργηθεί.

Άσκηση

Με βάση τα παραπάνω γράψτε το πρόγραμμα mymkdir το οποίο δημιουργεί έναν νέο υποκατάλογο. Ως άδεια στη συνάρτηση mkdir δώστε τον αριθμό 0777.

Παράδειγμα

kerkis:~$ mymkdir foo
kerkis:~$ ls -l
...
drwxr-xr-x   2 dspin    users        1024 Oct 21 12:05 foo/             
...
kerkis:~$ 

Οι κλήσεις πρόσβασης σε αρχεία

Άσκηση

Με βάση τα παραπάνω γράψτε το πρόγραμμα mycat το οποίο εκτυπώνει το περιεχόμενο των αρχείων που του δίδονται ως παράμετροι. Για ευκολία στην αρχή υλοποιήστε το mycat για ένα μόνο αρχείο με μέγεθος μικρότερο από 1024 byte.

Παράδειγμα

kerkis:~$ mycat /etc/motd
Linux 2.0.30.
kerkis:~$           

Βιβλιογραφία