Skip to main content

הכל על לינוקס / פיקוד יוניקס: execvp

ניהול חברתי בקוד פתוח- הקץ לפוליטיקה? (bettermeans" intro") (יוני 2026)

ניהול חברתי בקוד פתוח- הקץ לפוליטיקה? (bettermeans" intro") (יוני 2026)
Anonim

הexec משפחה של פונקציות מחליף את תמונת התהליך הנוכחי עם תמונת תהליך חדש. הפונקציות המתוארות כאן הן קדמיות עבור הפונקציהלברר(2).

הארגומנט הראשוני עבור פונקציות אלה הוא שם הנתיב של קובץ שיש לבצע.

ה ARG * char const ואחריו אליפסות בexecl, execlp, וexecle פונקציות ניתן לחשוב על arg , arg , …, argn . יחד הם מתארים רשימה של אחד או יותר מצביעים על מחרוזות שהפסיקו null המייצגים את רשימת הטיעונים הזמינים לתכנית המתבצעת. הארגומנט הראשון, לפי האמנה, צריך להצביע על שם הקובץ המשויך לקובץ המתבצע. רשימת הארגומנטים צריך יופסק על ידיריק מצביע.

הexecv וexecvp פונקציות לספק מערך של מצביעים על מחרוזות Null-terminated המייצגים את הרשימה ארגומנט זמין לתוכנית החדשה. הארגומנט הראשון, לפי האמנה, צריך להצביע על שם הקובץ המשויך לקובץ המתבצע. מערך המצביעים צריך יופסק על ידיריק מצביע.

הexecle פונקציה גם מפרט את הסביבה של תהליך שבוצע על ידי ביצועריקהמצביע שמסיים את רשימת הארגומנטים ברשימת הפרמטרים או את המצביע למערך argv עם פרמטר נוסף. פרמטר נוסף זה הוא מערך של מצביעים למחרוזות שהפסיקו null צריך יופסק על ידיריק מצביע. הפונקציות האחרות לוקחות את הסביבה לתמונת התהליך החדשה מהמשתנה החיצוני סביבה בתהליך הנוכחי.

לחלק מהתפקודים האלה יש סמנטיקה מיוחדת.

הפונקציותexeclp וexecvp יהיה לשכפל את הפעולות של הקליפה בחיפוש אחר קובץ הפעלה אם שם הקובץ שצוין אינו מכיל תו סלאש (/). נתיב החיפוש הוא הנתיב שצוין בסביבה על ידיPathH משתנה. אם משתנה זה לא צוין, נעשה שימוש בנתיב ברירת המחדל ``: / bin: / usr / bin ''. בנוסף, טעויות מסוימות מטופלים במיוחד.

אם ההרשאה נדחתה עבור קובץ (הניסיוןלברר חזרחלופות), פונקציות אלה ימשיכו לחפש את שאר נתיב החיפוש. אם לא יימצא קובץ אחר, הם יחזרו עם המשתנה הגלובלי טעות מכוון לחלופות.

אם הכותרת של קובץ אינה מזוהה (הניסיוןלברר חזרENOEXEC), פונקציות אלה יבצע את הקליפה עם הנתיב של הקובץ כמו הטיעון הראשון שלה. (אם ניסיון זה נכשל, לא נעשה חיפוש נוסף.)

ערך החזרה

אם בכללexec מחזירה פונקציות, אירעה שגיאה. ערך ההחזרה הוא -1, והמשתנה הגלובלי טעות יוגדר כדי לציין את השגיאה.

חשוב: להשתמש ב איש פקודה ( % איש ) כדי לראות כיצד נעשה שימוש בפקודה במחשב הספציפי שלך.

שם

execl, execlp, execle, execv, execvp - לבצע קובץ

תקציר

#include

סביבה חיצונית;

int execl (const char * נתיב , Char const * arg , …); int execlp (const char * קובץ , Char const * arg , …); int execle (const char * נתיב , Char const * arg , …, char * const envp ); int execv (const char * נתיב , char * const arg ); int execvp (const char * קובץ , char * const arg );