Skip to main content

Όλα για την εντολή Linux / Unix: execvp

Linux Scripting Tutorial 4o - Η εντολή echo και πως χρησιμοποιείται (Ιούνιος 2025)

Linux Scripting Tutorial 4o - Η εντολή echo και πως χρησιμοποιείται (Ιούνιος 2025)

Πίνακας περιεχομένων:

Anonim

ο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 θα οριστεί για να υποδείξει το σφάλμα.

Σπουδαίος: Χρησιμοποιήστε το άνδρας εντολή ( % άνδρας ) για να δείτε πώς χρησιμοποιείται μια εντολή στον υπολογιστή σας.

Ονομα

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 );