下面命令將文件 a,拷貝成文件 b。
# cp a b
a 和 b,就是 cp 命令的命令行參數。
程序要感知到命令行參數,main 函數應該寫成這樣:
int main(int argc, char * argv[])
{
...
}
argc代表命令行參數的個數,包含命令本身。所以在上面拷貝的例子中,argc等于3。
argv是個指針數組,每個數組元素都是 char * 類型,以字符串的形式存儲命令行參數。
argc和argv,都是操作系統在啟動程序時,放入程序的堆棧中的。
例如,下面的程序打印出所有命令行參數。
#include <stdio.h>
int main(int argc, char * argv[])
{
for (int i = 0; i < argc; i++ ) { printf ("%s\n", argv[i]); }
return 0;
}
命令行參數以空格分隔,如果一個參數內部有空格,則用雙引號括起來即可。如 "hello world" 代表一個參數。