Linux komandasini o'rganish - execl

Ismi: execl, execlp, execle, execv, execvp - faylni ishga tushirish

Sinopsis

#include

extern char ** environ;

int execl (const char * yo'l , const char * arg , ...);
int execlp (const char * fayli , const char * arg , ...);
int execle (const char * yo'l , const char * arg , ..., char * const envp []);
int execv (const char * yo'l , char * const argv []);
int execvp (const char * fayl , char * const argv []);

Ta'rif

Funksiyalarning exec oilasi joriy jarayon tasvirini yangi operatsiyani tasvir bilan almashtiradi. Ushbu qo'llanma sahifasida tavsiflangan funktsiyalar funktsiyaning oldingi uchlari (2). Ushbu funktsiyalarning dastlabki argumenti bajarilishi kerak bo'lgan faylning yo'lidir.

Exstl , execlp va execle funktsiyalaridagi const char * arg va keyingi ellips arg0 , arg1 , ..., argn deb qarash mumkin . Birgalikda ular bajarilgan dasturda mavjud dalillar ro'yxatini ifodalovchi null-terminali satrlar uchun bir yoki bir nechta ko'rsatgichlar ro'yxatini tasvirlab beradi. Birinchi dalil, konventsiya tomonidan bajarilayotgan fayl bilan bog'liq fayl nomini ko'rsatishi kerak. Argumentlar ro'yxati NULL ko'rsatgichi bilan tugatilishi kerak .

Execvp va execvp funktsiyalari yangi dastur uchun mavjud dalillar ro'yxatini aks ettiruvchi null-terminali satrlar uchun markerlarning bir qatorini taqdim etadi. Birinchi dalil, konventsiya tomonidan bajarilayotgan fayl bilan bog'liq fayl nomini ko'rsatishi kerak. Ko'rsatkichlar majmuasini NULL ko'rsatgichi bilan o'chirib qo'yish kerak .

Qator vazifasi parametr ro'yxatidagi argumentlar ro'yxatini yoki parametr bilan argv qatoriga ishora qiluvchi yakunlovchi NULL ko'rsatgichidan so'ng bajarilgan jarayonning muhitini belgilaydi. Ushbu qo'shimcha parametr null-terminali striller uchun markerlarning qatori va NULL ko'rsatkich bilan tugatilishi kerak . Boshqa funktsiyalar joriy jarayonda tashqi o'zgaruvchan muhitdan yangi jarayon tasviri uchun muhitni oladi .

Ushbu funktsiyalarning ba'zilari maxsus semantikaga ega.

Execlp va execvp vazifalari, ko'rsatilgan fayl nomi slash (/) belgi bo'lmasa, bajariladigan faylni qidirishda qobiqning harakatlarini takrorlaydi. Qidiruv yo'li - PATH o'zgaruvchisi tomonidan belgilangan muhit . Agar bu o'zgaruvchi aniqlanmagan bo'lsa, ``: / bin: / usr / bin 'ko'rsatgich yo'li ishlatiladi. Bundan tashqari, muayyan xatolar maxsus ravishda ko'rib chiqiladi.

Agar fayl uchun ruxsat berilmasa (qaytarilgan EACCESni ishga tushirishga urinish ), bu funktsiyalar izlash yo'lining qolgan qismini qidirishda davom etadi. Boshqa hech qanday fayl topilmasa, EACCES-ga o'rnatilgan global o'zgaruvchan errno bilan qaytadi .

Agar fayl nomini tanimaslik ( ENOEXECni qaytarib olishga urinish) bo'lsa, bu funktsiyalar faylning yo'lini birinchi argument sifatida bajaradi. (Ushbu urinish muvaffaqiyatsiz bo'lsa, boshqa izlanishlar qilinmaydi.)

Qaytish qiymati

Exec funktsiyalaridan biri qaytarsa, xato bo'ladi. Qaytish qiymati -1 bo'lsa, global o'zgaruvchi errno xatoni ko'rsatish uchun o'rnatiladi.