close


int main(int argc, char* argv[]) 這兩個參數的作用是什麼呢?

argc 是指命令行輸入參數的個數,argv存儲了所有的命令行參數。
假如你的程式是hello.exe,如果在命令行運行該程式,
運行命令為:hello.exe hello world
那麼,argc的值是 3,argv[0]是"hello.exe",argv[1]是"hello",argv[2]是"world"。

 gcc -o hello hello.c
 0   1   2      3

在 linux 裏常看到 cmd -o xx -p xx 等用法,linux libc 函式庫則提供一套 function 來幫您解析。
extern char *optarg;
void usage(char *argv0)
{
fprintf(stderr, "Usage: %s [-c count] [-r] [-s]", argv0);
}
int main(int argc, char *argv[])
{
for (;;) {
c = getopt(argc, argv, "c:rs");
if (c == EOF) break;
switch (c) {
case 'c':
probe_count = atoi(optarg);
break;
case 'r':
replay++;
break;
case 's':
set_clock++;
break;
default: // show usage
usage(argv[0]);
exit(1);
}
}
}
getopt 會解析 argc, argv 從 patten "c:rs" 後面帶參數要加":",
傳回值為抓到的參數字元,無則傳回 EOF,
並將參數值存在 global 參數 optarg,再使用 atoi 轉換成 integer。

arrow
arrow
    全站熱搜

    BB 發表在 痞客邦 留言(0) 人氣()