العودة إلى الدورة

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

لغة C: من الصفر إلى الاحتراف - الدليل الشامل للمبتدئين

الدرس 54: وسائط سطر الأوامر (argc, argv)

غالباً ما تحتاج برامج C لقبول معلمات مباشرة من المستخدم عند تنفيذ البرنامج في terminal. تُعرف هذه باسم وسائط سطر الأوامر.

توقيع main الخاص

للوصول إلى هذه الوسائط، يجب التصريح عن دالة main بمعلمين محددين:

c int main(int argc, char *argv[]) { // ... كود ... }

1. argc (عدد الوسائط)

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

2. argv (متجه الوسائط)

مصفوفة من المؤشرات لمصفوفات حروف (سلاسل نصية). كل مؤشر سلسلة يحمل وسيطاً واحداً من سطر الأوامر.

  • argv[0] هو دائماً اسم/مسار الملف التنفيذي.
  • argv[1] هو الوسيط الأول الذي يزوده المستخدم.
  • ... حتى argv[argc - 1].

مثال على الاستخدام

بفرض تم ترجمة البرنامج لاسم app وتشغيله كالتالي: ./app file.txt 100

c int main(int argc, char *argv[]) { printf("إجمالي الوسائط: %d\n", argc); // 3

if (argc < 3) {
    printf("الاستخدام: %s <اسم_الملف> <رقم>\n", argv[0]);
    return 1;
}

printf("الوسيط 1 (اسم الملف): %s\n", argv[1]); // file.txt
printf("الوسيط 2 (الرقم كنص): %s\n", argv[2]); // 100

// لاستخدام argv[2] كعدد صحيح، يجب تحويله:
int num = atoi(argv[2]); // يتطلب <stdlib.h>
printf("الوسيط 2 (الرقم كعدد صحيح): %d\n", num);

return 0;

}