Skip to main content

פיקוד יוניקס

Week 9 (יוני 2026)

Week 9 (יוני 2026)
Anonim

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

תקציר

#include extern x char **, int execl (const char * נתיב, const char * arg, …);execlp int (קובץ char char *, const char * arg, …);execle int (const char * נתיב, const char * arg, …, char * const envp );execv int (const char * path, char * const argv );int execvp (קובץ char char *, char * const argv );

תיאור

ה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, והמשתנה הגלובלי טעות יוגדר כדי לציין את השגיאה.