Περιεχόμενο
οexec Η οικογένεια λειτουργιών αντικαθιστά την τρέχουσα εικόνα διαδικασίας με μια νέα εικόνα διαδικασίας. Οι συναρτήσεις που περιγράφονται εδώ είναι διεπαφές για τη λειτουργίαεκτελεί(2).
Το αρχικό όρισμα για αυτές τις συναρτήσεις είναι το όνομα διαδρομής ενός αρχείου που πρόκειται να εκτελεστεί.
οconst char * arg και επακόλουθες ελλείψεις στοexecl, execlp, καιεκτελεί λειτουργίες μπορούν να θεωρηθούν ωςarg0, arg1, ..., argn. Μαζί περιγράφουν μια λίστα με έναν ή περισσότερους δείκτες σε συμβολοσειρές μηδενικού τερματισμού που αντιπροσωπεύουν τη λίστα ορισμάτων που είναι διαθέσιμη στο εκτελούμενο πρόγραμμα. Το πρώτο επιχείρημα, κατά σύμβαση, πρέπει να δείχνει το όνομα του αρχείου που σχετίζεται με το αρχείο που εκτελείται. Ο κατάλογος των επιχειρημάτωνπρέπει να τερματιστεί από έναΜΗΔΕΝΙΚΟ δείκτης.
οexecv καιexecvp Οι συναρτήσεις παρέχουν μια σειρά από δείκτες σε συμβολοσειρές με μηδενικό τερματισμό που αντιπροσωπεύουν τη λίστα ορισμάτων που είναι διαθέσιμη στο νέο πρόγραμμα. Το πρώτο επιχείρημα, κατά σύμβαση, πρέπει να δείχνει το όνομα του αρχείου που σχετίζεται με το αρχείο που εκτελείται. Η σειρά των δεικτώνπρέπει να τερματιστεί από έναΜΗΔΕΝΙΚΟ δείκτης.
οεκτελεί Η συνάρτηση καθορίζει επίσης το περιβάλλον της εκτελούμενης διαδικασίας ακολουθώντας τοΜΗΔΕΝΙΚΟδείκτη που τερματίζει τη λίστα ορισμάτων στη λίστα παραμέτρων ή το δείκτη προς τον πίνακα argv με μια πρόσθετη παράμετρο. Αυτή η επιπρόσθετη παράμετρος είναι ένας πίνακας δεικτών σε συμβολοσειρές μηδενικού τερματισμού καιπρέπει να τερματιστεί από έναΜΗΔΕΝΙΚΟ δείκτης. Οι άλλες λειτουργίες λαμβάνουν το περιβάλλον για τη νέα εικόνα της διαδικασίας από την εξωτερική μεταβλητήπερικυκλώ στην τρέχουσα διαδικασία.
Ορισμένες από αυτές τις λειτουργίες έχουν ειδική σημασιολογία.
Οι λειτουργίεςexeclp καιexecvp θα επαναλάβει τις ενέργειες του κελύφους κατά την αναζήτηση ενός εκτελέσιμου αρχείου, εάν το καθορισμένο όνομα αρχείου δεν περιέχει χαρακτήρα κάθετο (/). Η διαδρομή αναζήτησης είναι η διαδρομή που καθορίζεται στο περιβάλλον από τοΜΟΝΟΠΑΤΙ μεταβλητός. Εάν αυτή η μεταβλητή δεν έχει καθοριστεί, χρησιμοποιείται η προεπιλεγμένη διαδρομή ": / bin: / usr / bin". Επιπλέον, ορισμένα σφάλματα αντιμετωπίζονται ειδικά.
Εάν απορριφθεί η άδεια για ένα αρχείο (η απόπειραεκτελεί ΕπέστρεψανEACCES), αυτές οι συναρτήσεις θα συνεχίσουν να αναζητούν την υπόλοιπη διαδρομή αναζήτησης. Εάν δεν βρεθεί κανένα άλλο αρχείο, ωστόσο, θα επιστρέψουν με την καθολική μεταβλητήΈρνο οριστεί σεEACCES.
Εάν η κεφαλίδα ενός αρχείου δεν αναγνωρίζεται (η απόπειραεκτελεί ΕπέστρεψανENOEXEC), αυτές οι συναρτήσεις θα εκτελέσουν το κέλυφος με τη διαδρομή του αρχείου ως το πρώτο όρισμα. (Εάν αποτύχει αυτή η προσπάθεια, δεν γίνεται περαιτέρω αναζήτηση.)
Αξία επιστροφής
Εάν κάποιο από ταexec επιστρέφει συναρτήσεις, θα εμφανιστεί σφάλμα. Η τιμή επιστροφής είναι -1 και η καθολική μεταβλητήΈρνο θα ρυθμιστεί για να υποδείξει το σφάλμα.
Χρησιμοποιήστε τοάνδρας εντολή (% άνδρας) για να δείτε πώς χρησιμοποιείται μια εντολή στον συγκεκριμένο υπολογιστή σας.
Ονομα
execl, execlp, execle, execv, execvp - εκτελέστε ένα αρχείο
Σύνοψη
#περιλαμβάνω εξωτερικό char ** environ; int execl (const char *)μονοπάτι, const char *υποστηρίζει, ...); int execlp (const char *)αρχείο, const char *υποστηρίζει, ...); int execle (const char *)μονοπάτι, const char *υποστηρίζει , ..., char * constenvp[]] int execv (const char *μονοπάτι, char * constargv[]] int execvp (const char *)αρχείο, char * constargv[]);