Skip to main content

সমস্ত লিনাক্স / ইউনিক্স কমান্ড সম্পর্কে: execvp

ফর্ক উপর একটি টিউটোরিয়াল এবং সি execvp ++, (জুন 2025)

ফর্ক উপর একটি টিউটোরিয়াল এবং সি execvp ++, (জুন 2025)
Anonim

দ্যExec ফাংশন পরিবারের একটি নতুন প্রক্রিয়া ইমেজ সঙ্গে বর্তমান প্রক্রিয়া ইমেজ প্রতিস্থাপন। এখানে বর্ণিত ফাংশন ফাংশন জন্য সামনে শেষ হয়execve(2).

এই ফাংশনগুলির জন্য প্রাথমিক আর্গুমেন্টটি একটি ফাইলের পাথনাম যা মৃত্যুদন্ড কার্যকর করা হয়।

দ্য কনস গৃহস্থালি * আর্গ এবং পরবর্তী ellipses মধ্যেexecl, execlp, এবংexecle ফাংশন হিসাবে চিন্তা করা যেতে পারে arg0 , ARG1 , …, argn । একত্রে তারা এক বা একাধিক পয়েন্টারের তালিকাকে বাতিল করে বাতিল করা স্ট্রিংগুলিতে বর্ণনা করে যা নির্বাহিত প্রোগ্রামে উপস্থিত যুক্তি তালিকাটি উপস্থাপন করে। প্রথম যুক্তি, কনভেনশন দ্বারা, ফাইলটি কার্যকর হওয়া ফাইলের সাথে যুক্ত হওয়া উচিত। আর্গুমেন্ট তালিকা অবশ্যই একটি দ্বারা বাতিল করা হবেখালি পয়েন্টার।

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

দ্যexecle ফাংশন এছাড়াও অনুসরণ করে মৃত্যুদন্ড কার্যকর পরিবেশের পরিবেশ উল্লেখ করেখালিপয়েন্টার যা পরামিতি তালিকায় আর্গুমেন্টের তালিকা বা অতিরিক্ত পরামিতির সাথে argv অ্যারের পয়েন্টারটি বন্ধ করে দেয়। এই অতিরিক্ত প্যারামিটার নু-অবসানকৃত স্ট্রিং এবং পয়েন্টারগুলির একটি অ্যারে অবশ্যই একটি দ্বারা বাতিল করা হবেখালি পয়েন্টার। অন্যান্য ফাংশন বহিরাগত পরিবর্তনশীল থেকে নতুন প্রক্রিয়া ইমেজ জন্য পরিবেশ গ্রহণ বেষ্টন করা বর্তমান প্রক্রিয়া।

এই ফাংশন কিছু বিশেষ semantics আছে।

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

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

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

ফেরত মূল্য

যদি কোনExec ফাংশন ফেরৎ, একটি ত্রুটি ঘটেছে হবে। ফেরত মান -1, এবং গ্লোবাল পরিবর্তনশীল errno ত্রুটি নির্দেশ করতে সেট করা হবে।

গুরুত্বপূর্ণ: ব্যবহার মানুষ কমান্ড ( % মানুষ ) আপনার কম্পিউটারে কোন কমান্ড ব্যবহার করা হয় তা দেখতে।

নাম

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

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

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

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

int excl (কনস্টেবল গৃহস্থালি * পথ , কন্স গৃহস্থালি * ARG , …); int exclcl (কনস্টেবল গৃহস্থালি * ফাইল , কন্স গৃহস্থালি * ARG , …); int excle (Const char * পথ , কন্স গৃহস্থালি * ARG , …, গৃহস্থালি * Const envp ); int execv (Const char) পথ , গৃহস্থালি * কনস্টেবল argv হয় ); int execvp (Const char) ফাইল , গৃহস্থালি * কনস্টেবল argv হয় );