一、Linux應(yīng)用程序如何接收參數(shù)?
1. argc、argv
在linux中,當(dāng)我們執(zhí)行應(yīng)用程序時(shí),通常會(huì)通過(guò)命令行將參數(shù)傳遞給程序,例如:
ls?/dev/?-l??
這里的 /dev/ 和 -l 都是作為參數(shù)傳遞給命令 ls。
那么應(yīng)用程序是如何接收這些參數(shù)的呢?
一般來(lái)說(shuō),應(yīng)用程序從 main 函數(shù)開始執(zhí)行,傳統(tǒng)的 main 函數(shù)定義如下:
int?main(int?argc,?char*?argv[])?
在這里:
-
argc:表示程序的命令行參數(shù)數(shù)量,用于統(tǒng)計(jì)參數(shù)數(shù)量。
-
argv:是一個(gè)指向字符串數(shù)組的指針,數(shù)組中的每個(gè)字符串都是一個(gè)參數(shù),而最后一個(gè)元素則為 0。常見的做法是使用多級(jí)指針來(lái)處理字符串。
char* argv[] 有時(shí)也會(huì)寫成 char **argv,實(shí)際上,argv[] 是一個(gè)存放字符指針地址的數(shù)組。
在c語(yǔ)言中,字符串被存放在 char 數(shù)組中,而最后一個(gè)元素為