लिनक्स कमांड - execv जानें

execl, execlp, execle, execv, execvp - एक फ़ाइल निष्पादित करें

सार

# शामिल

बाहरी चार ** पर्यावरण;

int execl (कॉन्स चार * पथ , कॉन्स चार * तर्क , ...);
int execlp (कॉन्स char * फ़ाइल , कॉन्स char * arg , ...);
int execle (कॉन्स चार * पथ , कॉन्स char * arg , ..., char * const envp []);
int execv (const char * पथ , char * const argv []);
int execvp (कॉन्स char * फ़ाइल , char * const argv []);

निष्पादन कार्यों का विवरण

फ़ंक्शंस का निष्पादन परिवार वर्तमान प्रक्रिया छवि को एक नई प्रक्रिया छवि के साथ बदल देता है। फ़ंक्शन निष्पादित करने के लिए इस मैन्युअल पृष्ठ में वर्णित फ़ंक्शंस फ्रंट- एंड हैं (2)। (वर्तमान प्रक्रिया के प्रतिस्थापन के बारे में विस्तृत जानकारी के लिए निष्पादित करने के लिए मैन्युअल पृष्ठ देखें।)

इन कार्यों के लिए प्रारंभिक तर्क एक फ़ाइल का पथनाम है जिसे निष्पादित किया जाना है।

एक्सईसीएल , एक्सईक्लप , और एक्सकेकल फ़ंक्शंस में कॉन्स char * arg और बाद के लंबवत को arg0 , arg1 , ..., argn के रूप में सोचा जा सकता है। साथ में वे निष्पादित कार्यक्रम में उपलब्ध तर्क सूची का प्रतिनिधित्व करने वाले नल-टर्मिनेटेड स्ट्रिंग्स के लिए एक या अधिक पॉइंटर्स की एक सूची का वर्णन करते हैं। सम्मेलन द्वारा पहला तर्क, निष्पादित फ़ाइल से जुड़े फ़ाइल नाम को इंगित करना चाहिए। तर्कों की सूची को एक पूर्ण सूचक द्वारा समाप्त किया जाना चाहिए।

Execv और execvp फ़ंक्शंस पॉइंटर्स की एक सरणी को नल-टर्मिनेटेड स्ट्रिंग्स प्रदान करते हैं जो नए प्रोग्राम के लिए उपलब्ध तर्क सूची का प्रतिनिधित्व करते हैं। सम्मेलन द्वारा पहला तर्क, निष्पादित फ़ाइल से जुड़े फ़ाइल नाम को इंगित करना चाहिए। पॉइंटर्स की सरणी को एक पूर्ण सूचक द्वारा समाप्त किया जाना चाहिए।

एक्सीकल फ़ंक्शन निष्पादित प्रक्रिया के पर्यावरण को नल पॉइंटर का पालन करके निर्दिष्ट करता है जो पैरामीटर सूची में तर्कों की सूची को समाप्त करता है या अतिरिक्त पैरामीटर के साथ argv सरणी में सूचक को समाप्त करता है। यह अतिरिक्त पैरामीटर नल-टर्मिनेटेड तारों के लिए पॉइंटर्स की एक सरणी है और इसे एक पूर्ण सूचक द्वारा समाप्त किया जाना चाहिए। अन्य कार्य मौजूदा प्रक्रिया में बाह्य चर वातावरण से नई प्रक्रिया छवि के लिए पर्यावरण लेते हैं।

इनमें से कुछ कार्यों में विशेष अर्थशास्त्र है।

Execlp और execvp फ़ंक्शंस निष्पादन योग्य फ़ाइल की खोज में खोल के कार्यों को डुप्लिकेट करेगा यदि निर्दिष्ट फ़ाइल नाम में स्लैश (/) वर्ण नहीं है। खोज पथ पैथ चर द्वारा पर्यावरण में निर्दिष्ट पथ है। यदि यह चर निर्दिष्ट नहीं है, तो डिफ़ॉल्ट पथ ``: / bin: / usr / bin '' का प्रयोग किया जाता है। इसके अलावा, कुछ त्रुटियों का विशेष रूप से इलाज किया जाता है।

अगर किसी फ़ाइल के लिए अनुमति अस्वीकार कर दी गई है (प्रयास निष्पादित निष्पादित ईएसीसीईएस ), तो ये कार्य शेष खोज पथ को खोजना जारी रखेंगे। यदि कोई अन्य फ़ाइल नहीं मिली है, हालांकि, वे वैश्विक वैरिएबल इरनो सेट के साथ ईएसीसीईएस पर वापस आ जाएंगे

यदि किसी फ़ाइल का शीर्षलेख पहचाना नहीं गया है (प्रयास निष्पादित ENOEXEC लौटाया गया है ), तो ये फ़ंक्शन फ़ाइल के पथ के साथ खोल को अंतिम तर्क के रूप में निष्पादित करेंगे। (यदि यह प्रयास विफल रहता है, तो कोई और खोज नहीं की जाती है।)

निष्पादन कार्यों का वापसी मूल्य

यदि कोई भी निष्पादन फ़ंक्शन देता है, तो कोई त्रुटि उत्पन्न होगी। वापसी मान -1 है, और वैश्विक चर इरनो त्रुटि को इंगित करने के लिए सेट किया जाएगा।