2012-02-03 11 views
5

मैं execl के बजाय execv का उपयोग करता हूं। execv का उपयोग करने के लिए, मैं एक सरणी बनाता हूं और तर्क देता हूं जिसका उपयोग मैं execl के साथ करता हूं। फिर मैंने इस सरणी को execvexecl और execv के बीच क्या अंतर है?

मुझे पता है कि मुझे execv के लिए तर्कों की एक सरणी का उपयोग करना है, लेकिन क्यों? execl और execv के बीच क्या अंतर है?

उत्तर

6

तर्कों के प्रारूप के अलावा कोई अंतर नहीं है। वे दोनों एक ही अंतर्निहित सिस्टम कॉल execve() पर कॉल करेंगे।

+0

हमें तर्कों के स्वरूप को बदलने की आवश्यकता क्यों है? मेरा मतलब है कि अगर वे एक ही काम कर रहे हैं –

+2

'execve()' सिस्टम कॉल (और 'execv()') एक सरणी में तर्क लेते हैं। 'execl()' केवल एक सुविधा के रूप में प्रदान किया जाता है, यदि आपके पास एक निश्चित संख्या में तर्क हैं, तो आपको सरणी सेट करने की समस्या से बचने के लिए अनुमति मिलती है। 'execl()' फ़ंक्शन तर्कों को एक अस्थायी सरणी में ही संग्रहीत करेगा और फिर सिस्टम कॉल करेगा। यदि आप स्वयं तर्क तर्क सेट अप करते हैं तो आपको 'execl() 'की आवश्यकता नहीं है। – mark4o

संबंधित मुद्दे