命令行參數(shù)
在C中,獲取用戶輸入的命令行參數(shù)是很方便的。程序的主函數(shù)會接受一個argv參數(shù)。有許多高級的庫函數(shù)都會用到argv結構,所以了解此結構對一個C程序員來說將是很有用的。
請錄入并編譯下面的程序:
#include\ int main(int argc, char *argv[]){int x;printf("%d n",argc);for (x=0; x
prinff("%s\
return 0;}
本程序中,主函數(shù)接受兩個參數(shù):argv和argc。其中argv是一個字符串指針數(shù)組,它們指向從UNIX命令行運行程序時輸入的參數(shù)。而argc即為參數(shù)的個數(shù)。上面這段代碼會打印所有的命令行參數(shù)。作為試驗,請把程序編譯生成的可執(zhí)行文件命名為aaa,然后鍵入aaa xxx yyy zzz運行程序。程序將會分行打印出命令行參數(shù)xxx、yyy 和 zzz。
char *argv[]是一個字符串指針數(shù)組。換句話說,數(shù)組的每個元素是一個指針,指針指向一個字符串(嚴格說是字符串的第一個字符)。所以,argv[0]指向的字符串即命令行的第一個參數(shù)(程序名),argv[1]指向第二個參數(shù),以此類推。argc表示數(shù)組中有多少指針是有效的。由此可見,上面的程序只是打印了argv指向的每個有效字符串而已。
使用argv您可以很方便地讓程序對用戶輸入的命令行參數(shù)作出響應。例如,您可以讓程序在檢測到程序名后第一個參數(shù)是help時,將幫助信息輸出到標準輸出設備。還可以把文件名作為參數(shù)傳入程序供fopen等函數(shù)使用。