معلمات سطر الأوامر 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