Latest web development tutorials

معلمات سطر الأوامر C

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

معلمات سطر الأوامر لاستخدام الوظيفة الرئيسية () لمعالجة المعلمات،حيث يشير ARGC لعدد من المعلمات التيتمتمريرها،ARGV [] هو مجموعة من المؤشرات، كل من المعلمات التي تم تمريرها إلى النقطة البرنامج. هنا مثال بسيط، للتحقق ما إذا كان هناك سطر الأوامر وتقدم حجة، وتنفيذ الإجراء المناسب وفقا لمعايير:

#include <stdio.h>

int main( int argc, char *argv[] )  
{
   if( argc == 2 )
   {
      printf("The argument supplied is %s\n", argv[1]);
   }
   else if( argc > 2 )
   {
      printf("Too many arguments supplied.\n");
   }
   else
   {
      printf("One argument expected.\n");
   }
}

استخدام معلمة، ترجمة وتنفيذ التعليمات البرمجية أعلاه، وسوف تؤدي إلى النتائج التالية:

$./a.out testing
The argument supplied is testing

حجتين، ترجمة وتنفيذ التعليمات البرمجية أعلاه، وسوف تؤدي إلى النتائج التالية:

$./a.out testing1 testing2
Too many arguments supplied.

لا تمر أية معلمات، ترجمة وتنفيذ التعليمات البرمجية أعلاه، وسوف تؤدي إلى النتائج التالية:

$./a.out
One argument expected

وتجدر الإشارة إلى أنه،ARGV [0] لتخزين اسمالبرنامج،ARGV [1] هو مؤشر إلى أول مؤشر سيطة سطر الأوامر، * ARGV [ن] هو المعلمة الأخيرة. إذا لم يكن هناك حجج، وسوف تكون ARGC 1. خلاف ذلك، إذا قمت بتمريرمعلمة، سوف يتم تعيين ARGC إلى 2.

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

#include <stdio.h>

int main( int argc, char *argv[] )  
{
   printf("Program name %s\n", argv[0]);
 
   if( argc == 2 )
   {
      printf("The argument supplied is %s\n", argv[1]);
   }
   else if( argc > 2 )
   {
      printf("Too many arguments supplied.\n");
   }
   else
   {
      printf("One argument expected.\n");
   }
}

استخدام معلمة بسيطة مفصولة بمسافات، معلمات داخل علامتي اقتباس، ترجمة وتنفيذ التعليمات البرمجية أعلاه، وسوف تؤدي إلى النتائج التالية:

$./a.out "testing1 testing2"

Progranm name ./a.out
The argument supplied is testing1 testing2