新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > Main函數(shù)參數(shù)argc,argv說(shuō)明

Main函數(shù)參數(shù)argc,argv說(shuō)明

作者: 時(shí)間:2016-11-28 來(lái)源:網(wǎng)絡(luò) 收藏
C/C++語(yǔ)言中的main函數(shù),經(jīng)常帶有參數(shù)argc,argv,如下:

int main(int argc, char** argv)

本文引用地址:http://m.butianyuan.cn/article/201611/322937.htm

int main(int argc, char* argv[])

這兩個(gè)參數(shù)的作用是什么呢?argc 是指命令行輸入?yún)?shù)的個(gè)數(shù),argv存儲(chǔ)了所有的命令行參數(shù)。假如你的程序是hello.exe,如果在命令行運(yùn)行該程序,(首先應(yīng)該在命令行下用 cd 命令進(jìn)入到 hello.exe 文件所在目錄) 運(yùn)行命令為:

hello.exe Shiqi Yu

那么,argc的值是 3,argv[0]是"hello.exe",argv[1]是"Shiqi",argv[2]是"Yu"。

下面的程序演示argc和argv的使用:

#include  int main(int argc, char ** argv) { int i; for (i=0; i < argc; i++) printf("Argument %d is %s./n", i, argv[i]); return 0; }

假如上述代碼編譯為hello.exe,那么運(yùn)行

hello.exe a b c d e

將得到

Argument 0 is hello.exe. Argument 1 is a. Argument 2 is b. Argument 3 is c. Argument 4 is d. Argument 5 is e.

運(yùn)行

hello.exe lena.jpg

將得到

Argument 0 is hello.exe. Argument 1 is lena.jpg.
================================
#include #include #include 
int main(int argc ,char * argv[]){int i;char arg[6][15]={0};printf("argc : %d /n",argc);for(i=0;i{sprintf(arg[i],"%s" ,argv[i]);}//for(i=1;i<4;i++)//printf("%s/n",arg[i]);execlp("/bin/mkdir","mkdir",arg[1],NULL);return 1;}
======================================
清單 2. BusyBox 使用 argv[0] 來(lái)確定調(diào)用哪個(gè)應(yīng)用程序
// test.c #include  int main( int argc, char *argv[] ) { int i; for (i = 0 ; i < argc ; i++) { printf("argv[%d] = %s/n", i, argv[i]); } return 0; }
// test.c #include  int main( int argc, char *argv[] ) { int i; for (i = 0 ; i < argc ; i++) { printf("argv[%d] = %s/n", i, argv[i]); } return 0; }



評(píng)論


技術(shù)專(zhuān)區(qū)

關(guān)閉