شرح حجج سطر الأوامر في لغة سي

نشرت: 2022-04-29

يتم استخدام وسيطات سطر الأوامر عندما يحتاج البرنامج إلى التحكم فيه من الخارج بدلاً من التحكم فيه داخليًا. إنها واجهة نصية للمطورين حيث يتم تمرير الوسائط مباشرة إلى الطريقة الأساسية.

القيم التي يتم تمريرها داخل دالة عندما يتم استدعاؤها تسمى كوسيطات. بمعنى آخر ، الوسيطة هي معلمة يتم تمريرها إلى طريقة معينة عند استدعائها.

بناء الجملة :

انت مين() { /* … */ }

يتلقى الكود أعلاه الأمر ويمرره إلى نظام تشغيل الكمبيوتر ليتم تشغيله. يتم استدعاء هذه الأوامر دائمًا عند تنفيذ التعليمات البرمجية.

من السهل جدًا تنفيذ وسيطات سطر الأوامر CC و C ++ بسبب بساطتها وسهولة فك تشفيرها.

لتمرير وسيطات سطر الأوامر ، يجب تحديد الوظيفة الرئيسية بواسطة وسيطتين:

  1. العدد الإجمالي لوسائط سطر الأوامر
  2. القائمة الكاملة لوسائط سطر الأوامر

بناء الجملة :

int main (int argc، char * argv []) {/ *… * /}

  1. يتم تعريف argc (ARGument Count) كنوع بيانات عدد صحيح يخزن العدد الإجمالي لوسائط سطر الأوامر. من المفهوم أن هذا يجب أن يكون دائمًا قيمة غير سلبية.
  2. تشير argv (ARGument Vector) إلى مجموعة من المؤشرات من نوع بيانات الحرف المستخدمة لتخزين القائمة الكاملة لوسائط سطر الأوامر.

بمساعدة سطر الأوامر ، يمكن للمطورين الوصول إلى مجموعة من الملفات والمجلدات على أجهزة الكمبيوتر الخاصة بهم. قد يقوم برنامج معين يحتوي على العديد من وسيطات سطر الأوامر بتحديد مصادر أو وجهات البيانات المعينة بسرعة. كما أن لديها القدرة على تغيير أداء البرنامج. يجعل عملية البناء أسهل في التحكم في المصدر.

في مجال التطوير ، لا تتطلب مجموعة كبيرة من المهام تصورًا فعليًا. في مثل هذه الحالات ، يمكن تنفيذ جميع الوظائف بمساعدة وسيطات سطر الأوامر. هناك متطلبات نادرة جدًا لواجهة رسومية حرفية. يساعد هذا في توفير الكثير من الأموال والجهد والموارد.

تعلم دورات تطوير البرمجيات عبر الإنترنت من أفضل الجامعات في العالم. اربح برامج PG التنفيذية أو برامج الشهادات المتقدمة أو برامج الماجستير لتتبع حياتك المهنية بشكل سريع.

جدول المحتويات

خصائص | وسيطات سطر الأوامر في لغة C.

تحتوي حجج سطر الأوامر على عدد قليل من الخصائص الشيقة والمفيدة. وهم على النحو التالي:

  • لطباعة اسم البرنامج ، يجب أن يكون الأمر argv [0]
  • argv [argc] هو في الأساس مؤشر فارغ
  • لطباعة الوسيطة الأولى التي يوفرها المستخدم ، يجب أن يكون الأمر argv [1]
  • يقوم المستخدم بتمرير وسيطات سطر الأوامر من المحطة
  • استخدام هذه الأوامر هو التحكم في البرامج من الخارج ، بدلاً من الاضطرار إلى ترميز القيم داخل البرنامج
  • يتم تمرير وسيطات سطر الأوامر إلى الدالة main () في جميع الأوقات
  • أول وسيطة للأمر Land هي argv [1] ، بينما الأمر الأخير هو argv [n]

مثال على وسيطة سطر الأوامر

فيما يلي برنامج تجريبي لوسائط سطر الأوامر في لغة C:

// C برنامج لتوضيح

// وسائط سطر الأوامر

# تضمين <stdio.h>

int main (int argc، char * argv [])

{

عداد int

printf ("اسم البرنامج هو:٪ s" ، argv [0]) ؛

إذا (argc == 1)

printf ("\ n لم يتم تمرير وسيطة سطر أوامر إضافية بخلاف اسم البرنامج")؛

إذا (argc> = 2)

{

printf ("\ n عدد الحجج التي تم تمريرها:٪ d"، argc)؛

printf ("\ n —- فيما يلي تم تجاوز وسيطات سطر الأوامر—-") ؛

لـ (العداد = 0 ؛ العداد <argc ؛ العداد ++)

printf ("\ nargv [٪ d]:٪ s" ، عداد ، argv [عداد]) ؛

}

العودة 0 ؛

}

يختلف الإخراج وفقًا للسيناريوهات المختلفة. لقد تم شرحها بشكل فردي.

  1. بدون جدال:

لإنتاج المخرجات التالية ، يجب تنفيذ الكود دون تمرير وسيطة:

المخرج 1 -

$ ./a.out

اسم البرنامج: ./a.out

لم يتم تمرير وسيطة سطر أوامر إضافية بخلاف اسم البرنامج

  • بثلاث حجج:

لإنتاج الناتج التالي ، يجب تنفيذ الكود بثلاث وسائط.

الناتج 2 -

$ ./a.out الأول الثاني الثالث

اسم البرنامج: ./a.out

عدد الحجج التي تم تمريرها: 4

—- فيما يلي تم تجاوز حجج سطر الأوامر—-

argv [0]: ./a.out

argv [1]: أولاً

argv [2]: ثانيًا

argv [3]: ثالثًا

  • بحجة واحدة:

يجب ترجمة التعليمات البرمجية وتنفيذها باستخدام وسيط واحد يجب فصله بمسافة أثناء وجوده داخل علامات الاقتباس لإنتاج الإخراج التالي.

الناتج 3 -

$ ./a.out "أول ثاني ثالث."

اسم البرنامج: ./a.out

عدد الحجج التي تم تمريرها: 2

—- فيما يلي تم تجاوز حجج سطر الأوامر—-

argv [0]: ./a.out

argv [1]: الأول والثاني الثالث

  • باستخدام وسيطة واحدة بين علامتي الاقتباس ومفصولة بمسافة:

يجب تجميع التعليمات البرمجية وتنفيذها باستخدام وسيطة واحدة مفصولة بمسافة ولكن ضمن علامات اقتباس مفردة لإنتاج الناتج التالي.

الناتج 4 -

$ ./a.out "أول ثاني ثالث"

اسم البرنامج: ./a.out

عدد الحجج التي تم تمريرها: 2

—- فيما يلي تم تجاوز حجج سطر الأوامر—-

argv [0]: ./a.out

argv [1]: الأول والثاني الثالث

مزايا حجج سطر الأوامر في لغة سي

هناك العديد من الفوائد لاستخدام وسيطات سطر الأوامر في C. وهي كما يلي:

  • يمكن استخدام وسيطات سطر الأوامر في لغة C عندما يريد مبرمج أو مستخدم تمرير القيم إلى البرنامج من الداخل بدلاً من القيام بذلك داخليًا.
  • يمكن جعل تطبيقات سطر الأوامر سهلة الاستخدام في الملفات الدفعية أو البرامج النصية. يأتي هذا كمساعدة كبيرة فيما يتعلق بالاختبار الآلي أو البناء.
  • يسهل تطوير سطر الأوامر إذا كتب المبرمجون الأدوات بدلاً من استخدامها. تُعتبر الوسيطات المُدخلة مهمة أكثر تعقيدًا وتستغرق وقتًا طويلاً من إخراج دفق نصي.
  • يمكن إعادة توجيه تدفقات المدخلات والمخرجات والخطأ بسهولة شديدة عندما يمكن إرسال المعلومات أو تلقيها من ملفات وتطبيقات مختلفة.
  • آلية إرجاع الخطأ في وسيطات سطر الأوامر قياسية وبسيطة تمامًا.
  • عندما يحاول مبرمج أو مستخدم الوصول من المنزل أو على الطريق ، بشكل أساسي أثناء التنقل ، فإن الاستخدام عبر الأصداف البعيدة أو غيرها من الاتصالات المماثلة يجعل من السهل أداء المهام على أقل تقدير.
  • لوظيفة تحديد ملفات متعددة ، توجد معايير بناء جملة أحرف البدل المحددة ، والتي تستمد من المعرفة الحالية للمطور أو المبرمج والمصارف عليها.
  • سطور القيادة مقنعة وسريعة للغاية.

عند الحديث عن المزايا في العديد من حجج سطر الأوامر ، فإن ما يلي هو مثال مفصل آخر أو عرض توضيحي لكيفية تنفيذها.

# تضمين <stdio.h>

# تضمين <conio.h>

// يتم استدعاء الطريقة الرئيسية التي يتم من خلالها تمرير وسيطات سطر الأوامر إلى البرنامج

int main (int argc، char * argv [])

{

// يتم تعريف متغير عدد صحيح

الباحث أ ؛

// إذا تم تطبيق الشرط للتحقق مما إذا كان عدد الوسائط التي تم تمريرها إلى البرنامج أكبر من أو يساوي اثنين ، وإذا كان الشرط صحيحًا ، فستتم طباعة وسيطات سطر الأوامر التي تم تمريرها إلى البرنامج. وإلا ، فلن يتم تمرير أي وسيطة إلى البرنامج

إذا (argc> = 2)

{

printf ("الوسائط التي تم تمريرها إلى البرنامج هي: \ n")؛

لـ (أ = 1 ؛ أ <argc ؛ أ ++)

{

printf ("الوسيطة التي تم تمريرها إلى البرنامج هي:٪ s \ t" ، argv [a]) ؛

}

}

آخر

{

printf ("لا يتم تمرير وسيطة إلى البرنامج \ n")؛

}

العودة 0 ؛

}

انتاج:

لا يتم تمرير أي حجة للبرنامج.

يتم تمرير وسيطات سطر الأوامر إلى البرنامج في الكود المذكور أعلاه عن طريق استدعاء الطريقة الرئيسية. الخطوة التالية هي تعريف متغير عدد صحيح. بعد ذلك ، يتم تمرير الشرط للتحقق مما إذا كان عدد الوسائط التي تم تمريرها إلى البرنامج أكبر أو يساوي 2. تتم طباعة وسيطات سطر الأوامر التي تم تمريرها إلى البرنامج إذا كان الشرط صحيحًا. إذا لم يكن الأمر كذلك ، فلن يتم تمرير أي وسيطة إلى البرنامج وطباعتها.

الاستنتاجات

تعرف على المزيد حول أهمية حجج سطر الأوامر في C و C ++ من خلال الاشتراك في برنامج upGrad's Executive PG في تطوير البرمجيات - التخصص في تطوير المكدس الكامل . تم تصميم الدورة التدريبية التي تبلغ مدتها 13 شهرًا لمساعدة محترفي تكنولوجيا المعلومات الطموحين على إتقان Java و Spring و Hibernate و HTML و React و Git ومجموعة من لغات وأدوات البرمجة الأخرى لبناء تطبيقات معقدة مثل Quora و Swiggy.

يقدم البرنامج أيضًا شهادة تنفيذية مجانية لمدة 4 أشهر في علوم البيانات والتعلم الآلي.

ما هي العيوب الأساسية التي يجب أن يواجهها المبرمجون أثناء تنفيذ وسيطات سطر الأوامر في لغة سي؟

على الرغم من أن وسيطات سطر الأوامر في لغة C ملائمة للمطورين والمبرمجين ، إلا أنها تحمل بعض العيوب. قد يكون الأشخاص الذين ليس لديهم المعرفة الأساسية وغير المعتادين على العمل مع هذه الأوامر صعبًا للغاية للتعلم والتكيف ، خاصة في فترة قصيرة. ومع ذلك ، فهذه ليست مشكلة للمبرمجين والمطورين ذوي الخبرة. لكنه يثبت أنه عائق أحيانًا للموظفين المبتدئين الذين قد يأتون من مجالات مختلفة أو متجاورة. علاوة على ذلك ، تحتاج وسيطات سطر الأوامر إلى لوحة مفاتيح ليتم تنفيذها وتنفيذها. غالبًا ما يصبح هذا عائقًا إذا احتاج شخص ما للوصول إليه من خلال هاتفه أو جهاز iPad ، وما إلى ذلك.

ما المحددات المستخدمة لفصل وسيطات سطر الأوامر؟

لفصل وسيطات سطر الأوامر ، يتم استخدام المسافات الفارغة بشكل عام. يفصلون اسم الأمر عن معلماته ويفصلون بين المعلمات المختلفة. كما أنها مفيدة أثناء فصل قائمة من القيم المختلفة. عادة ما يتم التعامل مع الفراغات المتعددة كفراغ واحد. الاستثناء الوحيد لهذا يحدث في سلسلة مقتبسة أو تعليق محاط بعلامات اقتباس مفردة.

هل من الممكن تحويل وسيطات سطر الأوامر؟

يتم تمرير جميع وسيطات سطر الأوامر كسلسلة. يجب دائمًا تحويل القيم الرقمية بواسطة المبرمجين أو المستخدمين إلى نماذجهم الداخلية ، باستخدام الجهد اليدوي. تستقبل الوظيفة الرئيسية دائمًا معلماتها ، والتي عادة ما تكون عبارة عن مصفوفة من السلاسل النصية. هذه هي وسيطة الوظيفة الوحيدة التي تقبلها الوظيفة الرئيسية. يتم عمل أنواع بيانات السلسلة ليتم استخدامها أثناء تخزين وسيطات سطر الأوامر.