Skip to main content

Execv - εντολή Linux - εντολή Unix

5ο Μάθημα της σειράς μαθημάτων "Η γραμμή εντολών Linux" - 27/01/2013 (Ιούνιος 2026)

5ο Μάθημα της σειράς μαθημάτων "Η γραμμή εντολών Linux" - 27/01/2013 (Ιούνιος 2026)
Anonim

execl, execlp, execle, execv, execvp - εκτελέστε ένα αρχείο

Σύνοψη

#περιλαμβάνω

εξωτερικός χαρακτήρας ** περιβάλλον ·

int execl (const char * μονοπάτι , const char * arg , …); int execlp (const char * αρχείο , const char * arg , …); int execle (const char * μονοπάτι , const char * arg , …, char * const envp ); int execv (const char * μονοπάτι , char * const argv ); int execvp (const char * αρχείο , char * const argv );

Περιγραφή των λειτουργιών εκτέλεσης

οexec οικογένεια λειτουργιών αντικαθιστά την τρέχουσα εικόνα της διαδικασίας με μια νέα εικόνα της διαδικασίας. Οι λειτουργίες που περιγράφονται σε αυτή τη σελίδα εγχειριδίου είναι εμπρός για τη λειτουργίαεκτέλεση(2). (Δείτε τη σελίδα εγχειριδίου γιαεκτέλεση για λεπτομερείς πληροφορίες σχετικά με την αντικατάσταση της τρέχουσας διαδικασίας.)

Το αρχικό επιχείρημα για αυτές τις λειτουργίες είναι το όνομα διαδρομής ενός αρχείου που πρόκειται να εκτελεστεί.

ο const char * arg και τις επόμενες ελλείψεις στοexecl, execlp, καιexecle οι λειτουργίες μπορούν να θεωρηθούν ως arg0 , arg1 , …, argn . Μαζί περιγράφουν μια λίστα με έναν ή περισσότερους δείκτες σε συμβολοσειρές με τερματισμό null που αντιπροσωπεύουν τη λίστα των παραμέτρων που είναι διαθέσιμες στο εκτελεμένο πρόγραμμα. Το πρώτο επιχείρημα, κατά σύμβαση, θα πρέπει να δείχνει το όνομα του αρχείου που σχετίζεται με το αρχείο που εκτελείται. Η λίστα των επιχειρημάτων πρέπει να τερματίζεται από έναΜΗΔΕΝΙΚΟ δείκτης.

οexecv καιexecvp οι συναρτήσεις παρέχουν μια σειρά από δείκτες σε συμβολοσειρές με τερματισμό null που αντιπροσωπεύουν τη λίστα των παραμέτρων που είναι διαθέσιμες στο νέο πρόγραμμα. Το πρώτο επιχείρημα, κατά σύμβαση, θα πρέπει να δείχνει το όνομα του αρχείου που σχετίζεται με το αρχείο που εκτελείται. Η σειρά των δεικτών πρέπει να τερματίζεται από έναΜΗΔΕΝΙΚΟ δείκτης.

οexecle συνάρτηση καθορίζει επίσης το περιβάλλον της εκτελεσθείσας διαδικασίας ακολουθώντας τοΜΗΔΕΝΙΚΟ δείκτη που τερματίζει τη λίστα των παραδειγμάτων στη λίστα παραμέτρων ή το δείκτη στον πίνακα argv με μια πρόσθετη παράμετρο. Αυτή η πρόσθετη παράμετρος είναι μια σειρά από δείκτες σε συμβολοσειρές που έχουν τερματιστεί με null και πρέπει να τερματίζεται από έναΜΗΔΕΝΙΚΟ δείκτης. Οι άλλες λειτουργίες παίρνουν το περιβάλλον για τη νέα εικόνα της διαδικασίας από την εξωτερική μεταβλητή περιβάλλω στην τρέχουσα διαδικασία.

Ορισμένες από αυτές τις λειτουργίες έχουν ιδιαίτερη σημασιολογία.

Οι λειτουργίεςexeclp καιexecvp θα αντιγράψει τις ενέργειες του κελύφους κατά την αναζήτηση ενός εκτελέσιμου αρχείου εάν το καθορισμένο όνομα αρχείου δεν περιέχει έναν χαρακτήρα (/). Η διαδρομή αναζήτησης είναι η διαδρομή που καθορίζεται στο περιβάλλον από τοΜΟΝΟΠΑΤΙ μεταβλητός. Εάν αυτή η μεταβλητή δεν έχει οριστεί, χρησιμοποιείται η προεπιλεγμένη διαδρομή ``: / bin: / usr / bin ''. Επιπλέον, ορισμένα σφάλματα αντιμετωπίζονται ειδικά.

Αν απορριφθεί άδεια για ένα αρχείο (η προσπάθειαεκτέλεση ΕπέστρεψανEACCES), οι λειτουργίες αυτές θα συνεχίσουν να αναζητούν το υπόλοιπο της διαδρομής αναζήτησης. Αν όμως δεν βρεθεί άλλο αρχείο, θα επιστρέψουν με την παγκόσμια μεταβλητή errno οριστεί σεEACCES.

Εάν η κεφαλίδα ενός αρχείου δεν αναγνωρίζεται (η προσπάθειαεκτέλεση ΕπέστρεψανENOEXEC), αυτές οι λειτουργίες θα εκτελούν το κέλυφος με τη διαδρομή του αρχείου ως το πρώτο του όρισμα. (Εάν αποτύχει αυτή η προσπάθεια, δεν γίνεται περαιτέρω έρευνα.)

Τιμή επιστροφής των λειτουργιών εκτέλεσης

Εάν κάποια από τιςexec επιστρέφει τις λειτουργίες, θα εμφανιστεί ένα σφάλμα. Η τιμή επιστροφής είναι -1 και η παγκόσμια μεταβλητή errno θα οριστεί για να υποδείξει το σφάλμα.