SOGO論壇
  登入   註冊   找回密碼
查看: 489|回覆: 0
列印 上一主題 下一主題

[技術文章] 命令列參數 [複製連結]

Rank: 11Rank: 11Rank: 11Rank: 11

熱心參予論壇活動及用心回覆主題勳章 數位硬體勳章

狀態︰ 離線
跳轉到指定樓層
1
發表於 2012-7-17 09:50:43 |只看該作者 |倒序瀏覽


在命令列(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");
喜歡嗎?分享這篇文章給親朋好友︰
               感謝作者     

請注意︰利用多帳號發表自問自答的業配文置入性行銷廣告者,將直接禁訪或刪除帳號及全部文章!
您需要登錄後才可以回覆 登入 | 註冊


本論壇為非營利自由討論平台,所有個人言論不代表本站立場。文章內容如有涉及侵權,請通知管理人員,將立即刪除相關文章資料。侵權申訴或移除要求:abuse@oursogo.com

GMT+8, 2025-2-6 15:24

© 2004-2025 SOGO論壇 OURSOGO.COM
回頂部