تخطَّ إلى المحتوى

🇨 شرح لغة C

معاملات سطر الأوامر (argc, argv)

الدرس 26 من 29· ⏱ 1 دقائق قراءة

توقيع main الكامل

بدل main() الفارغة، تقدر تستقبل ما كتبه المستخدم بعد اسم البرنامج:

int main(int argc, char *argv[]) {
    // argc: عدد المعاملات (بما فيها اسم البرنامج نفسه)
    // argv: مصفوفة نصوص، كل عنصر معامل
    return 0;
}

argv[0] وترتيب المعاملات

./program hello 42
  • argc يساوي 3.
  • argv[0] = "./program" (اسم البرنامج نفسه).
  • argv[1] = "hello".
  • argv[2] = "42".
  • argv[argc] مضمون أنه NULL — علامة نهاية المصفوفة.

طباعة كل المعاملات

#include <stdio.h>

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

فحص العدد قبل الوصول

كل عناصر argv نصوص (char*)، حتى لو بدت أرقامًا — الوصول لمعامل غير موجود سلوك غير معرّف:

if (argc < 2) {
    printf("الاستخدام: %s <اسم>\n", argv[0]);
    return 1;
}
printf("مرحبًا %s\n", argv[1]);

💡 لتحويل معامل نصّي مثل argv[2] إلى عدد استخدم atoi أو strtol — الدرس القادم.

أخطاء شائعة

  • افتراض وجود معامل قبل فحص argc.
  • نسيان أن argv[0] هو اسم البرنامج وليس أول معامل حقيقي.

🎯 التالي: تحويل النصوص والأرقام.

شرح معاملات سطر الأوامر (argc, argv) — لغة C بالعربي
معاملات سطر الأوامر (argc, argv)لغة C بالعربي · The Code Fix

📚 لمزيد من التعمّق في لغة C، راجِع مرجع لغة C الرسمي.

هل كان هذا الدرس مفيدًا؟