কমান্ড লাইন আর্গুমেন্টগুলি পড়া

C:
কমান্ড লাইন আর্গুমেন্টগুলি পড়া

কিভাবে:

C তে, main ফাংশনটি কমান্ড লাইন আর্গুমেন্টগুলি গ্রহণ করার জন্য int argc এবং char *argv[] প্যারামিটারগুলি ব্যবহার করে ডিজাইন করা যেতে পারে। এখানে, argc পাস করা আর্গুমেন্টগুলির সংখ্যা প্রতিনিধিত্ব করে, এবং argv হল আর্গুমেন্টগুলির সমস্ত তালিকা ধারণকারী চরিত্র পয়েন্টারের একটি অ্যারে। একটি দ্রুত উদাহরণ দেখানো হল:

#include <stdio.h>

int main(int argc, char *argv[]) {
    printf("Program Name: %s\n", argv[0]);
    printf("Argument Sankhya: %d\n", argc - 1);
    for (int i = 1; i < argc; i++) {
        printf("Argument %d: %s\n", i, argv[i]);
    }
    return 0;
}

উপরের কোড ব্যবহার করে, যদি প্রোগ্রামটি ./programName -a example হিসেবে চালানো হয়, তাহলে আউটপুট হবে:

Program Name: ./programName
Argument Sankhya: 2
Argument 1: -a
Argument 2: example

এটি প্রদর্শন করে কিভাবে কমান্ড লাইন আর্গুমেন্টগুলি C প্রোগ্রামে প্যার্স এবং ব্যবহার করা যেতে পারে।

গভীর ডুব

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

সাম্প্রতিক উন্নতিতে, getopt এর মতো লাইব্রেরিগুলি POSIX সিস্টেমগুলিতে বিকশিত হয়েছে যা লম্বা অপশন নামগুলি সহ্য করা বা অনুপস্থিত আর্গুমেন্টের জন্য ডিফল্ট মান হ্যান্ডল করার মতো আরও জটিল পার্সিং চাহিদাগুলি সমর্থন করতে। তবুও, argc এবং argv এর মৌলিক তন্ত্র সি�্য প্রোগ্রামগুলির তাদের রান-টাইম পরিবেশের সাথে কিভাবে ইন্টার্�্যাক্ট করে তা বোঝার জন্য অপরিহার্য থাকে।

সমালোচকরা হয়তো বলতে পারেন যে argc এবং argv সরাসরি ডিল করা ভুলে পূর্ণ হতে পারে, উচ্চ-স্তরের আবস্ট্র্যাকশনগুলির ব্যবহারের জন্য প্রচার করে। তবে, সি এর জটিলতাগুলি মাস্টার করতে চাওয়া এবং এর নিম্ন-স্তরের অপারেশনের সূক্ষ্মতা উপভোগ করতে চাওয়া জন্য, কমান্ড লাইন আর্গুমেন্ট পার্সিং মাস্টার করা একটি অত্যাবশ্যক পাস। এই ঐতিহাসিক পদ্ধতি এবং ব্যবহারিক উপযোগিতার মিশ্রণটি C এর সিস্টেম প্রোগ্রামিং এবং সফটওয়্যার ডেভেলপমেন্টে দীর্ঘস্থায়ী আকর্ষণের অনেক কিছু ধারণ করে।