- 註冊時間
- 2006-10-8
- 最後登錄
- 2019-6-20
- 主題
- 查看
- 積分
- 1306
- 閱讀權限
- 110
- 文章
- 1393
- 相冊
- 0
- 日誌
- 1
狀態︰
離線
|
在命令列(DOS視窗或UNIX Shell)下達指令時,常需要告訴該指令一些訊息,如
gcc -c hello.c
告訴gcc我們要編譯的原始檔是hello.c,而且-c說只要編譯不要產生執行檔。這些參數是由Shell(命令解譯程式)透過作業系統傳遞給應用程式的。那麼寫C程式的人要如何得到這些資訊呢?其實我們前面範例裡的main都把一些參數忽略了,完整的寫法應如下:
#include <stdio.h>
int main(int argc, char *argv[]) {
int i;
for (i = 0; i < argc; i++) {
printf("option %i = %s\n", i, argv[i]);
}
}
如果我們下達a.out one two three則會印出
option 0 = a.out
option 1 = one
option 2 = two
option 3 = three
也就是說參數argc告訴我們命令列上有幾個字串(含執行檔檔名),argv則是個array[] of pointer to char,紀錄命令列上的所有字串。UNIX上有個有趣的指令叫做echo,會把參數全部印出來
>echo a b c
a b c
>
這個程式很容易寫:
#include <stdio.h>
int main(int argc, char *argv[]) {
int i;
for (i = 1; i < argc; i++) {
if (i != 1) {
printf(" ");
}
printf("%s", argv[i]);
}
printf("\n"); |
|