آرگومان های خط فرمان در زبان C
ممکن است گاهی اوقات بخواهید از طریق خط فرمان، مقادیری را به برنامه خود منتقل کنید. این مقادیر آرگومان های خط فرمان نامیده می شوند و بسیار مهم هستند، مخصوصا زمانی که میخواهید برنامه خود را از بیرون کنترل کنید.
آرگومان های خط فرمان توسط تابع main() پردازش می شوند. این تابع دو پارامتر دارد، یکی 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[n] آرگومان nم را در خود نگه می دارد. اگر هیچ آرگومانی به برنامه ارسال نشود، مقدار argc برابر با ۱ و اگر یک آرگومان ارسال شود، مقدار argc برابر با ۲ خواهد بود.
اگر می خواهید یک رشته را که شامل یک فضای خالی است را به عنوان آرگومان به برنامه ارسال کنید، باید آن رشته را درون علامت نقل قول دوتایی یا تکی (” یا ‘) بنویسید. مانند نمونه زیر:
#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"); } }
زمانی که کد بالا توسط کامپایلر زبان C و اجرا شود، نتیجه زیر را تولید خواهد کرد:
$./a.out "testing1 testing2" Progranm name ./a.out The argument supplied is testing1 testing2
نوشته آرگومان های خط فرمان در زبان C – آموزش زبان C اولین بار در سورس سرا - آموزش برنامه نویسی. پدیدار شد.