লিনাক্স কমান্ড শিখুন - execl

নাম: execl, execlp, execle, execv, execvp - একটি ফাইল চালানো

সংক্ষিপ্তসার

# অন্তর্ভুক্ত

বহির্বিশ্ব গৃহস্থালি ** পরিবেশ;

int execl (const char * পাথ , const char * arg , ...);
int execlp (const char * ফাইল , const char * arg , ...);
int execle (const char * পাথ , const char * arg , ..., char * const envp []);
int execv (const char * পাথ , গৃহস্থালি * const argv []);
int execvp (const char * ফাইল , char * const argv []);

বিবরণ

ফাংশন এর exec পরিবার একটি নতুন প্রক্রিয়া ইমেজ সঙ্গে বর্তমান প্রক্রিয়া ইমেজ প্রতিস্থাপিত। এই ম্যানুয়াল পৃষ্ঠাতে বর্ণনা করা ফাংশন ফাংশন execve (2) এর জন্য ফ্রন্ট-এন্ড রয়েছে। এই ফাংশনের জন্য প্রাথমিক আর্গুমেন্ট হল একটি ফাইলের পাথ নাম যা কার্যকর করা হয়।

Execl , execlp এবং execle ফাংশনগুলির মধ্যে const char * arg এবং পরবর্তী ellipses arg0 , arg1 , ..., argn হিসাবে চিন্তা করা যেতে পারে। একসাথে তারা এক বা একাধিক পয়েন্টারের তালিকাটি উল্লিখিত স্ট্রিংসগুলির জন্য বর্ণনা করে যা প্রয়োগ করা প্রোগ্রামের জন্য উপলব্ধ যুক্তি তালিকার প্রতিনিধিত্ব করে। কনফিগারেশন দ্বারা প্রথম যুক্তিটি, ফাইলটি চালানো হচ্ছে এমন ফাইলের নাম উল্লেখ করা উচিত। আর্গুমেন্টের তালিকাটি একটি নুল পয়েন্টার দ্বারা সমাপ্ত করা আবশ্যক

Execv এবং execvp ফাংশন নল-সমাপ্ত পংক্তির পয়েন্টার প্রদান করে যা নতুন প্রোগ্রামের জন্য উপলব্ধ যুক্তি তালিকার প্রতিনিধিত্ব করে। কনফিগারেশন দ্বারা প্রথম যুক্তিটি, ফাইলটি চালানো হচ্ছে এমন ফাইলের নাম উল্লেখ করা উচিত। পয়েন্টার অ্যারে একটি নুল পয়েন্টার দ্বারা সমাপ্ত করা আবশ্যক

Execle ফাংশনটি NULL পয়েন্টার অনুসরণ করে সঞ্চালিত প্রসেসের পরিবেশকে নির্দিষ্ট করে দেয় যা পরামিতি তালিকায় আর্গুমেন্টের অবসান বা অতিরিক্ত প্যারামিটারের সাথে argv অ্যারে পয়েন্টারটি বন্ধ করে দেয়। এই অতিরিক্ত প্যারামিটারটি নল-সমাপ্ত স্ট্রিংগুলির পয়েন্টারগুলির একটি অ্যারে এবং একটি নুল পয়েন্টার দ্বারা সমাপ্ত করা আবশ্যক । অন্য কার্যাবলি বর্তমান প্রক্রিয়ায় বাহ্যিক পরিবর্তনশীল এনভায়রন থেকে নতুন প্রসেস ইমেজের পরিবেশ গ্রহণ করে।

এই ফাংশনগুলির মধ্যে কিছু বিশেষ পরিভাষা আছে।

ফাংশন execlp এবং execvp একটি এক্সিকিউটেবল ফাইল অনুসন্ধানের জন্য শেলের কর্মের অনুলিপি করবে যদি নির্দিষ্ট ফাইলের নামটি একটি স্ল্যাশ (/) অক্ষর না থাকে। অনুসন্ধান পাথটি PATH ভেরিয়েবল দ্বারা পরিবেশে নির্দিষ্ট পাথ। এই পরিবর্তনশীল নির্দিষ্ট না হলে, ডিফল্ট পাথ ``: / bin: / usr / bin 'ব্যবহার করা হয়। উপরন্তু, নির্দিষ্ট ত্রুটিগুলি বিশেষভাবে চিকিত্সা করা হয়।

যদি একটি ফাইলের জন্য অনুমতি অস্বীকার করা হয় (চেষ্টা করা execve EACCES ফেরেন), এই ফাংশনটি বাকি অনুসন্ধান পথটি অনুসন্ধান চালিয়ে যাবে। যদি অন্য কোন ফাইলে পাওয়া না যায়, তবে তারা গ্লোবাল ভেরিয়েবল ত্রুটির সাথে EACCES তে ফেরত পাঠাবে

যদি ফাইলের হেডারটি স্বীকৃত না হয় (চেষ্টা করা execve ENOEXEC ফেরত পাঠায় ), এই ফাংশনটি শেলকে ফাইলটির পাথের সাথে প্রথম যুক্তি হিসাবে চালানো হবে। (এই প্রচেষ্টা ব্যর্থ হলে, আরও অনুসন্ধান করা হয় না।)

ফেরত মূল্য

যদি কোন exec ফাংশন ফেরত আসে, একটি ত্রুটি ঘটেছে। রিটার্ন মান হল -1, এবং গ্লোবাল ভেরিয়েবল ত্রুটিটি ত্রুটি নির্দেশ করে সেট করা হবে।