லினக்ஸ் கட்டளை - execv கற்கவும்

execl, execlp, execle, execv, execvp - ஒரு கோப்பு இயக்கவும்

கதைச்சுருக்கம்

# அடங்கும்

வெளிப்புற எரிதல் ** சூழலில்;

int exexcl (நிலையான கரி * பாதை , கான் காரி * arg , ...);
int execlp (constrict char * file , const char * arg , ...);
int execle (const char * path , const char * arg , ..., char * const envp []);
int execv (const char * path , char * const arg arg []);
int execvp (const char * கோப்பு , char * const arg arg []);

செயல்பாடுகள் செயல்பாட்டின் விளக்கம்

செயல்கள் செயல்படும் குடும்பம் நடப்பு செயல்முறை படத்தை ஒரு புதிய செயல்முறை படத்துடன் மாற்றும். இந்த கையேடு பக்கத்தில் விவரிக்கப்பட்டுள்ள செயல்பாடுகள் செயல்பாட்டிற்கு (2) செயல்படுவதற்கு முன் முனைகளாகும். (நடப்பு செயல்முறையின் மாற்றத்தைப் பற்றிய விரிவான தகவல்களைக் கொடுக்க கையேடு பக்கத்தைக் காண்க.)

இந்த செயல்பாடுகளை ஆரம்ப வாதம் செயல்படுத்தப்படும் ஒரு கோப்பு பாதை பெயர்.

Execl , execlp மற்றும் execle செயல்பாடுகளை உள்ள const char * arg மற்றும் subsequent ellipses arg0 , arg1 , ..., argn என கருதப்படுகிறது . ஒன்றாக அவர்கள் நிறைவேற்றப்பட்ட திட்டம் கிடைக்கும் வாதம் பட்டியலில் பிரதிநிதித்துவப்படுத்தும் பூஜ்ய நீக்கம் சரங்களை ஒன்று அல்லது அதற்கு மேற்பட்ட சுட்டிகள் பட்டியல் விவரிக்க. முதல் வாதம், மாநாட்டில், செயல்படுத்தப்படும் கோப்புடன் தொடர்புடைய கோப்பு பெயரை சுட்டிக்காட்ட வேண்டும். வாதங்களின் பட்டியல் ஒரு NULL சுட்டிக்காட்டி மூலம் நிறுத்தப்பட வேண்டும் .

Execv மற்றும் execvp சார்புகள் பூஜ்ஜியங்களை ஒரு வரிசைக்கு வழங்கியுள்ளன, இது புதிய நிரலுக்கு கிடைக்கக்கூடிய வாதப் பட்டியலைப் பிரதிநிதித்துவப்படுத்தும் பூஜ்ய முனையங்கள். முதல் வாதம், மாநாட்டில், செயல்படுத்தப்படும் கோப்புடன் தொடர்புடைய கோப்பு பெயரை சுட்டிக்காட்ட வேண்டும். சுட்டிகள் வரிசை NULL சுட்டிக்காட்டி மூலம் நிறுத்தப்பட வேண்டும் .

EXECTION செயல்பாடு NULL சுட்டிக்காட்டி தொடர்ந்து செயல்படுத்தப்பட்ட செயல்முறை சூழலை குறிப்பிடுகிறது என்று அளவுரு பட்டியலில் வாதங்கள் பட்டியல் அல்லது கூடுதல் அளவுரு கொண்டு argv வரிசைக்கு சுட்டிக்காட்டி. இந்த கூடுதல் அளவுரு பூஜ்ய பூஜ்ய சரங்களை சுட்டிக்காட்டிகளின் வரிசை ஆகும், மேலும் ஒரு NULL சுட்டிக்காட்டி மூலம் நிறுத்தப்பட வேண்டும் . மற்ற செயல்பாடுகளை தற்போதைய செயலாக்கத்தில் வெளி மாறி சூழலில் இருந்து புதிய செயல்முறை படத்தை சூழலை எடுத்து.

இந்த செயல்பாடுகளை சில சிறப்பு சொற்பொழிவுகள் உள்ளன.

குறிப்பிட்ட கோப்பு பெயரில் ஒரு ஸ்லாஷ் (/) தன்மையைக் கொண்டிருக்கவில்லை என்றால், செயல்படுத்தும் execlp மற்றும் execvp ஆகியவை ஷெல் செயல்களை நகலெடுக்கும். பாதையை மாற்றியமைக்க பாதையை மாற்றியமைக்கலாம். இந்த மாறி குறிப்பிடப்படவில்லை என்றால், இயல்புநிலை பாதை ``: / bin: / usr / bin '' பயன்படுத்தப்படுகிறது. கூடுதலாக, சில பிழைகள் சிறப்பாக சிகிச்சை அளிக்கப்படுகின்றன.

ஒரு கோப்பிற்கான அனுமதி மறுக்கப்பட்டால் (முயற்சி செய்யப்பட்டது EACCES ஐ நிறைவேற்றியது ), இந்த செயல்பாடுகள் தொடர்ந்து தேடுதல் வழித்தடத்தைத் தொடர்ந்து தேடுகின்றன. வேறு எந்தக் கோப்பையும் காணவில்லை என்றால், அவை உலக மாறிய பிழைகளுடன் EACCES க்குத் திரும்புகின்றன .

ஒரு கோப்பின் தலைப்பை அங்கீகரிக்கவில்லை என்றால் (முயற்சி எ.எ.இ.இ.இ.இ.இ.இ.இ.இன் நிறைவேற்றப்பட்டது), இந்த செயல்பாடுகள், அதன் முதல் வாதமாக கோப்பு பாதையில் ஷெல் இயக்கப்படும் . (இந்த முயற்சி தோல்வியடைந்தால், மேலும் தேடுதல் எதுவும் செய்யப்படாது.)

செயலாக்க செயல்பாடுகளை திரும்ப பெறுதல்

எந்த செயல்பாடின் செயல்பாடுகளும் திரும்பினால், ஒரு பிழை ஏற்பட்டது. மீண்டும் மதிப்பு -1 ஆகும், மற்றும் உலகளாவிய மாறி பிழை தவறு என்பதை குறிக்கும்.