Η οικογένεια κλήσεων exec
Η οικογένεια κλήσεων exec() αντικαθιστά τη διεργασία που εκτελείται με μια
νέα διεργασία που βασίζεται στο πρόγραμμα που δίδεται σαν παράμετρος στην
exec.
Ένα απλό μέλος της οικογένειας, η execlp(), λαμβάνει ως παραμέτρους,
το όνομα ή το μονοπάτι της εντολής,
τη μηδενική παράμετρο του πίνακα argv της εντολής (τυπικά, πάλι το όνομά της)
και, τις υπόλοιπες παραμέτρους της εντολής τερματισμένες με 0.
Αν ως πρώτη παράμετρος δε δοθεί μονοπάτι, τότε
η εντολή εντοπίζεται με βάση μονοπάτι των εντολών που έχει καθορίσει ο χρήστης
στη μεταβλητή PATH.
Το παρακάτω παράδειγμα εκτελεί την εντολή ls -la:
execlp("/bin/ls", "ls", "-la", 0);
Για να μπορέσει να συνεχίσει η εκτέλεση της αρχικής διεργασίας η
exec() συνδιάζεται συχνά με τη fork().
Στοιχεία όπως σωληνώσεις και αλλαγή της εισόδου και εξόδου δεν μπορούν
να προσδιοριστούν στην exec μια και αυτά τα χειρίζεται ο φλοιός και όχι
ο πυρήνας.
Παράδειγμα
Υλοποιήστε μια διεργασία η οποία ξεκινά ένα παιδί το οποίο εκτελεί την
εντολή ls.