תוֹכֶן
הביצוע משפחת הפונקציות מחליפה את תמונת התהליך הנוכחית בתמונת תהליך חדשה. הפונקציות המתוארות כאן הינן חזיתיות לפונקציהלהוציא לפועל(2).
הטיעון הראשוני לפונקציות אלה הוא שם הנתיב של קובץ שעתיד להיות מבוצע.
הconst char * arg ואליפסות בעקבותיוexecl, execlp, וexecle ניתן לחשוב על פונקציות כ-arg0, arg1, ..., argn. יחד הם מתארים רשימה של הצבעה אחת או יותר למחרוזות עם סיום בטל המייצגות את רשימת הטיעונים העומדת לרשות התוכנית המבוצעת. הטיעון הראשון, כמוסכמה, אמור להצביע על שם הקובץ המשויך לקובץ המבוצע. רשימת הוויכוחיםצריך להסתיים על ידי אריק מַצבִּיעַ.
הביצוע וexecvp הפונקציות מספקות מערך של עצות למחרוזות עם סיום בטל המייצגות את רשימת הארגומנטים הזמינה לתוכנית החדשה. הטיעון הראשון, כמוסכמה, אמור להצביע על שם הקובץ המשויך לקובץ המבוצע. מערך המצביעיםצריך להסתיים על ידי אריק מַצבִּיעַ.
הexecle הפונקציה מפרטת גם את סביבת התהליך המבוצע על ידי ביצוע הפעולהריקמצביע המסיים את רשימת הארגומנטים ברשימת הפרמטרים או את המצביע למערך argv עם פרמטר נוסף. פרמטר נוסף זה הוא מערך של הצבעות למחרוזות עם סיום בטל ו-צריך להסתיים על ידי אריק מַצבִּיעַ. הפונקציות האחרות לוקחות את הסביבה לתמונת התהליך החדשה מהמשתנה החיצוניסביבה בתהליך הנוכחי.
לחלק מהפונקציות הללו סמנטיקה מיוחדת.
הפונקציותexeclp וexecvp ישכפל את פעולות הקונכייה בחיפוש אחר קובץ הפעלה אם שם הקובץ שצוין אינו מכיל תו סלוש (/). נתיב החיפוש הוא הנתיב שצוין בסביבה על ידינָתִיב מִשְׁתַנֶה. אם לא צוין משתנה זה, נעשה שימוש בנתיב ברירת המחדל ': / bin: / usr / bin'. בנוסף, מטופלות בשגיאות מסוימות במיוחד.
אם נדחתה הרשאה לקובץ (הניסיוןלהוציא לפועל חזרמקורות), פונקציות אלה ימשיכו לחפש בשאר נתיבי החיפוש. אם לא נמצא קובץ אחר, עם זאת, הם יחזרו עם המשתנה הגלובלישגיאה מכוון למקורות.
אם הכותרת של הקובץ אינה מזוהה (הניסיוןלהוציא לפועל חזרENOEXEC), פונקציות אלה יבצעו את הקליפה עם נתיב הקובץ כטיעון הראשון שלו. (אם ניסיון זה נכשל, לא תתבצע חיפוש נוסף.)
ערך החזרה
אם מישהו מהביצוע פונקציות חוזרות, אירעה שגיאה. ערך התשואה הוא -1, והמשתנה הגלובלישגיאה יוגדר לציין את השגיאה.
להשתמש באיש פקודה (% איש) כדי לראות כיצד משתמשים בפקודה במחשב הספציפי שלך.
שֵׁם
execl, execlp, execle, execv, execvp - הפעל קובץ
תַקצִיר
#לִכלוֹל חיצוני char ** סביבה; int execl (const char *נָתִיב, const char *arg, ...); int execlp (const char *קוֹבֶץ, const char *arg, ...); int execle (const char *נָתִיב, const char *arg , ..., char * constenvp[]); intecv ביצוע (const char *נָתִיב, char * constargv[]); int execvp (const char *קוֹבֶץ, char * constargv[]);