Linux कमांड - execv जाणून घ्या

execl, execlp, execle, execv, execvp - फाईल कार्यान्वित करा

सारांश

#include

बाह्य क्रीक ** वातावरण;

int execl (कॉन्स्ट char * पथ , const char * arg , ...);
int execlp (const char * file , const char * arg , ...);
int execle (const char * path , const char * arg , ..., char * const envp []);
इंट एक्झेव (कॉन्स्ट चार्ल्स * पाथ , कॅर * कॉन्ट आर्गेव्ह []);
इंट execvp (कॉन्स्ट चार * फाईल , कॅररेक्ट * कॉन्स्ट आर्गव []);

Exec फंक्शन्सचे वर्णन

फंक्शन्सची exec कुटुंब नवीन प्रोसेस प्रतिमासह वर्तमान प्रोसेस प्रतिमाला बदलवितो. या मॅन्युअल पृष्ठामध्ये वर्णन केलेल्या कार्ये फंक्शन execve (2) साठी फ्रंट-एंड आहेत. (वर्तमान प्रक्रियेच्या पुनर्स्थापनेबद्दल सविस्तर माहितीसाठी निष्कासित करण्यासाठी मॅन्युअल पृष्ठ पहा.)

या फंक्शन्ससाठी प्रारंभिक अर्ग्युमेंट फाईलचा पथनाव आहे जो कार्यान्वित आहे.

Execl , execlp , आणि execle फंक्शन्समध्ये const char * arg आणि त्यानंतरच्या एलाईपर्स arg0 , arg1 , ..., argn असे समजल्या जाऊ शकतात. एकत्रितपणे ते निष्कासित केलेल्या स्ट्रिंगसाठी एक किंवा अधिक पॉइंटरची सूची दर्शवितात जे अंमलात दिलेल्या प्रोग्रामसाठी उपलब्ध असलेल्या वितर्क सूचीचे प्रतिनिधित्व करतात. प्रथम वितर्क, अधिवेशनाद्वारे, फाईल चालविण्याशी संबंधित फाइल नावाकडे निर्देशित केले पाहिजे. वितर्कांची सूची एक NULL पॉइंटरद्वारे समाप्त करणे आवश्यक आहे

Execv आणि execvp फंक्शन्स नल-टर्मिनेटेड स्ट्रिंगसाठी पॉइन्टरची अॅरे प्रदान करतात जे नवीन प्रोग्रामसाठी उपलब्ध वितर्क सूचीचे प्रतिनिधीत्व करतात. प्रथम वितर्क, अधिवेशनाद्वारे, फाईल चालविण्याशी संबंधित फाइल नावाकडे निर्देशित केले पाहिजे. पॉइन्टरची अॅरे NULL पॉइंटरद्वारे समाप्त करणे आवश्यक आहे .

एक्झिक फंक्शन निष्पादित प्रक्रियेचे पर्यावरण देखील निर्दिष्ट करते जे NULL पॉइंटरद्वारे पॅरामीटर सूचीतील आर्ग्युमेंट्स बंद करते किंवा अतिरिक्त पॅरामीटरसह argv अॅरेवर पॉईन्टर संपुष्ट करते. हे अतिरिक्त पॅरामीटर म्हणजे निरर्थक स्ट्रींगसाठी पॉइन्टरचे एक अर्रे आहे आणि त्यास NULL पॉइंटर द्वारे बंद करणे आवश्यक आहे . इतर कार्ये सध्याच्या प्रक्रियेत बाह्य परिवर्तनीय पर्यावरण पासून नवीन प्रक्रिया प्रतिमासाठी वातावरण घेतात.

यापैकी काही फंक्शन्स विशेष अर्थशास्त्र आहेत.

Execlp आणि execvp फंक्शन्स निष्क्रीय फाइल शोधताना शेलची क्रिया डुप्लिकेट करतील जर विशिष्ट फाइल नावामध्ये स्लॅश (/) वर्ण नसेल PATH वेरियेबल द्वारे पर्यावरण मध्ये निर्दिष्ट मार्ग आहे. जर हे व्हेरिएबल निर्दिष्ट नसेल, तर डीफॉल्ट पथ ``: / bin: / usr / bin 'वापरला जातो. याव्यतिरिक्त, विशिष्ट त्रुटी विशेषतः हाताळल्या जातात.

जर एखाद्या फाइलसाठी परवानगी नाकारली गेली असेल (प्रयत्न केला तर निष्कर्ष परत आला EACCES ), हे कार्य उर्वरित शोध पथ शोधणे सुरू ठेवतील. जर अन्य कोणतीही फाईल सापडली नाही तर, ते ग्लोबल व्हेरिएबल errno पासून EACCES वर परत येतील.

जर फाइलचे शिर्षक ओळखले गेले नाही (प्रयत्न केलेले execve परत ENOEXEC ), हे फंक्शन्स शेल फाइलचे मार्ग त्याच्या प्रथम वितर्क म्हणून अंमलात आणतील. (हा प्रयत्न अयशस्वी झाल्यास, आणखी शोध घेतला जात नाही.)

Exec फंक्शन्सची रिटर्न मूल्य

Exec execल्या कुठल्याही कार्यपद्धती, त्रुटी आली असेल. रिटर्न मूल्य -1 आहे, आणि वैश्विक वेरियेबल चूक गुन्हा दर्शविण्यासाठी सेट केले जाईल.