সি-তে লিনাক্স chdir সিস্টেম কল করুন

Si Te Linaksa Chdir Sistema Kala Karuna



একটি ডিভাইসের বর্তমান কার্যকারী ডিরেক্টরিতে পরিবর্তনগুলি 'CHDIR' পদ্ধতি ব্যবহার করে করা হয়। বিভিন্ন পরিস্থিতিতে, আপনি আপনার ডিভাইসের বর্তমান কাজের ফোল্ডার পরিবর্তন করার সিদ্ধান্ত নিতে পারেন। অথবা আপনি আপনার বর্তমান কাজের ডিরেক্টরির পরিবর্তে একটি ফোল্ডার থেকে একটি সি স্ক্রিপ্ট চালাতে চান। ফলস্বরূপ, সেই নির্দিষ্ট সি কোডটি চালানোর জন্য, আপনাকে অবশ্যই আপনার বর্তমান কার্যকারী ফোল্ডারটি সংশোধন করতে হবে। উপরন্তু, বর্তমান কার্যকারী ফোল্ডারটি কখন পরিবর্তিত হয়েছে তা দ্রুত নির্ধারণ করতে কোডিং ভাষা C এর 'getcwd' পদ্ধতি ব্যবহার করা যেতে পারে। এখন, আমরা একটি কাজের ডিরেক্টরি পরিবর্তন করতে এই নিবন্ধে C-এর chdir() ফাংশন ব্যবহার করব।

উদাহরণ 01:

চলুন শুরু করা যাক লিনাক্স অপারেটিং সিস্টেমে C-এর chdir() ফাংশনের কাজ। এর জন্য, আপনাকে নিশ্চিত করতে হবে যে C এর কম্পাইলারটি ইতিমধ্যেই আপনার শেষে মাউন্ট করা আছে। বেশিরভাগ ক্ষেত্রে, আমরা আমাদের কালি লিনাক্স অপারেটিং সিস্টেমে C এর 'gcc' কম্পাইলার ব্যবহার করার প্রবণতা রাখি। এই উদাহরণ দিয়ে শুরু করতে, আমাদের অবশ্যই 'c' এক্সটেনশন সহ একটি C ফাইল থাকতে হবে। আমরা এটির নাম দিয়েছি p1.c এবং লিনাক্সের 'ন্যানো' এডিটর দিয়ে এটি খোলার চেষ্টা করেছি যা নীচে উপস্থাপন করা হয়েছে।







যখন আপনার ফাইলটি এডিটরে খোলা হয়, তখন আপনাকে এটিতে কোডিং শুরু করতে হবে। আমরা C এর প্রধান হেডার লাইব্রেরি যোগ করে আমাদের C প্রোগ্রাম শুরু করছি যা যেকোনো C প্রোগ্রামে থাকা আবশ্যক। সুতরাং, stdio.h এবং unistd.h হেডার লাইব্রেরিগুলি প্রোগ্রামের মধ্যে স্ট্যান্ডার্ড ইনপুট এবং আউটপুট প্রবাহিত হতে পারে তা নিশ্চিত করতে ব্যবহার করা হয়। unistd.h হেডার ব্যবহার করা হয়েছে C এর কিছু স্ট্যান্ডার্ড ফাংশন ব্যবহার করার জন্য যা বিশেষ করে এই উদাহরণের জন্য প্রয়োজনীয়। এখন, আমরা এক্সিকিউশনে স্বয়ংক্রিয়ভাবে চালানোর জন্য এই কোডে C-এর প্রধান() ড্রাইভার ফাংশন শুরু করেছি। ক্যারেক্টার টাইপ অ্যারে ভেরিয়েবল 'পাথ' কে 100 এর আকার দিয়ে সংজ্ঞায়িত করা হয়েছে কারণ এটি শুধুমাত্র 100 টি মান সঞ্চয় করে।



printf() ফাংশন স্টেটমেন্টটি 'getcwd()' ফাংশন ব্যবহার করে এই C ফাইলের বর্তমান কার্যকারী ডিরেক্টরি ফোল্ডারটি প্রিন্ট করার জন্য ব্যবহার করা হয়েছে। এই ফাংশনটি 100 আকারের 'পাথ' অ্যারে ভেরিয়েবল ব্যবহার করে এতে বর্তমান ওয়ার্কিং ডিরেক্টরি পেতে এবং প্রদর্শনের জন্য এটি printf() ফাংশন স্টেটমেন্টে পাস করে। এখন, chdir() ফাংশনটি ব্যবহার করার সময় এসেছে। আমরা ডিরেক্টরিতে এগিয়ে যেতে চাই নাকি একই ডিরেক্টরির মধ্যে পিছনের দিকে যেতে চাই তা নির্দিষ্ট করতে আমরা যেকোনো ধরণের অক্ষর পাস করতে পারি।



সুতরাং, আমরা chdir() ফাংশন স্টেটমেন্টে '..' অক্ষরগুলিকে বর্তমান কার্যকারী ডিরেক্টরি থেকে পিছনের দিকে সরানোর চেষ্টা করেছি অর্থাৎ বর্তমান কার্যকারী ডিরেক্টরির এক স্তর নীচে। মনে রাখবেন যে এই মুহূর্তে, আমরা কালি লিনাক্স সিস্টেমের আমাদের প্রধান 'লিনাক্স' ওয়ার্কিং ডিরেক্টরির প্রোজেক্ট ফোল্ডারে কাজ করছি। এখন, আমরা 'chdir' ফাংশন ব্যবহার করার পরে 'প্রজেক্ট' ডিরেক্টরির পরিবর্তে 'লিনাক্স' ডিরেক্টরিতে আছি। এখন, আমরা 'getcwd' ফাংশন ব্যবহার করে বর্তমান কার্যকারী ডিরেক্টরি প্রদর্শন করার জন্য 'printf()' ফাংশন স্টেটমেন্ট আবার চেষ্টা করেছি। আমাদের প্রোগ্রাম রিটার্ন 0 স্টেটমেন্ট দিয়ে শেষ হয়।





এই C প্রোগ্রামটি সংরক্ষণ করার পরে, আমাদের এটিকে 'gcc' কম্পাইলার ব্যবহার করে কম্পাইল করতে হবে যা আমরা ইতিমধ্যে আমাদের শেষে কনফিগার করেছি। এই gcc নির্দেশনা ব্যবহার করে, আমরা নিচে প্রদর্শিত –o বিকল্পটি ব্যবহার করে “p1.out” নামে এই C ফাইলের একটি অবজেক্ট ফাইল তৈরি করেছি।



এখন, যখন আপনি আপনার লিনাক্স টার্মিনালে এর অবজেক্ট ফাইলটি চালাবেন, আপনি প্রথমে chdir() ফাংশন ব্যবহারের আগে প্রোগ্রাম দ্বারা ব্যবহৃত কার্যকারী ডিরেক্টরি পাবেন। chdir() ফাংশন ব্যবহারের পরে, আমরা নীচের একটি ডিরেক্টরিতে চলে যাই এবং সেই নির্দিষ্ট ডিরেক্টরি 'হোম' প্রদর্শিত হয়।

উদাহরণ 02:



একই হেডার লাইব্রেরি ব্যবহার করে, আমরা এই প্রোগ্রাম কোড শুরু করেছি। এই প্রোগ্রামের প্রধান() ফাংশনের মধ্যে, আমরা এতে chdir() ফাংশন ব্যবহার করে “if” স্টেটমেন্ট ব্যবহার করছি।

এই ফাংশনটি “/user!=0” শর্ত সেট করে সিস্টেমে “/user” বিদ্যমান আছে কিনা তা পরীক্ষা করবে। যদি বর্তমান সিস্টেমে ডিরেক্টরিটি বিদ্যমান না থাকে, তাহলে ত্রুটি ফাংশন কলটি সংশ্লিষ্ট ত্রুটি বার্তা প্রদর্শন করতে ব্যবহৃত হবে যেমন 'ব্যবহারকারী ডিরেক্টরি বিদ্যমান নেই। আমরা এর মধ্যে chdir() ফাংশন ব্যবহার করে আরেকটি “if” স্টেটমেন্ট ব্যবহার করছি। এখানে chdir() ফাংশনটি ব্যবহার করার উদ্দেশ্যটিও আমরা উপরের if স্টেটমেন্টের মতোই করেছি, যা '/temp'!=0 শর্তটি ব্যবহার করে ডিরেক্টরিটি বিদ্যমান আছে কিনা তা পরীক্ষা করার জন্য। শুধুমাত্র পার্থক্য হল '/user' এর পরিবর্তে একটি নতুন ডিরেক্টরি নাম '/temp' ব্যবহার করা যা আপনি নীচের কোড ইমেজ থেকে দেখতে পাচ্ছেন।







যদি /temp ডিরেক্টরিটি সিস্টেমে বিদ্যমান না থাকে, তাহলে 'if' বিবৃতিতে ব্যবহৃত pererror ফাংশনটি নীচের চিত্র থেকে প্রদর্শিত হিসাবে '/temp ডিরেক্টরি বিদ্যমান নেই' একটি ত্রুটি বার্তা দেবে। উভয় 'if' বিবৃতি ব্যবহারের পরে, আমরা C এর রিটার্ন 0 বিবৃতি দিয়ে এই কোডটি শেষ করছি। এখন, প্রোগ্রাম শেষ. আমরা আমাদের C কোডটি কার্যকর করার আগে Ctrl+S শর্টকাট ব্যবহার করে সংরক্ষণ করছি।





এখন যেহেতু ফাইলটি আপনার সিস্টেমে সংরক্ষিত হয়েছে, আমাদেরকে ইতিমধ্যেই আমাদের শেষে মাউন্ট করা “gcc” কম্পাইলারের সাথে C কোড কম্পাইল করতে হবে। এই নির্দেশটি ব্যবহার করে, আমরা নির্দেশের –o বিকল্পটি ব্যবহার করে এর অবজেক্ট ফাইল 'p2.out' তৈরি করছি।





'./' অক্ষর সহ তৈরি করা অবজেক্ট ফাইল 'p2.out' চালানোর পরে, আমরা শিখেছি যে 'chdir' এর পথে উল্লিখিত দুটি ডিরেক্টরিই সিস্টেমে বিদ্যমান নেই বা শেলটিতে প্রদর্শিত ত্রুটি প্রদর্শন করছে। এটা সঠিকভাবে।



উপসংহার

আজকের এই নিবন্ধের মধ্যে, আমরা কালি লিনাক্স অপারেটিং সিস্টেমে C-এর chdir() ফাংশনের ব্যবহার প্রদর্শন করেছি। প্রথম উদাহরণটি ব্যাখ্যা করে যে কিভাবে chdir() ফাংশনটি একটি কার্যকরী ডিরেক্টরি পরিবর্তন করতে ব্যবহার করা যেতে পারে যেমন, একটি ডিরেক্টরি থেকে অন্য ডিরেক্টরিতে সরানো। C-এর শেষ উদাহরণটি দেখায় যে কিভাবে আমরা chdir() এর পাথে নির্দিষ্ট করা বর্তমান ওয়ার্কিং ডিরেক্টরি বিদ্যমান আছে কিনা তা পরীক্ষা করতে পারি।