學習如何在 C 中訪問命令行參數
在你的 C 程式中,當命令啟動時,你可能需要從命令行接受參數。
對於簡單的需求,你只需要將 main()
函数的簽名從
int main(void)
修改為
int main(int argc, char *argv[])
argc
是一個整數,它包含了命令行中提供的參數數量。
argv
是一個字符串數組。
當程式啟動時,我們可以通過這兩個參數獲取傳入的參數。
注意,
argv
數組中始終至少有一個項目:程式的名稱
讓我們以運行 C 編譯器來執行我們的程式為例:
gcc hello.c -o hello
如果這是我們的程式,則 argc
會為 4,argv
則是一個包含以下項目的數組:
gcc
hello.c
-o
hello
讓我們編寫一個打印接收到的參數的程式:
#include <stdio.h>
int main(int argc, char *argv[]) {
for (int i = 0; i < argc; i++) {
printf("%s\n", argv[i]);
}
}
如果我們的程式名稱是 hello
,並且像這樣運行它:./hello
,則會得到以下輸出:
./hello
如果我們傳入一些隨機的參數,例如:./hello a b c
,則會在終端輸出以下內容:
./hello
a
b
c
對於簡單的需求,這個系統運作得很好。對於更複雜的需求,常用的庫,如 getopt
,可以提供更多功能。