zoukankan      html  css  js  c++  java
  • (转) int argc, char* argv[] 的用法

    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"。

    在 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。
  • 相关阅读:
    最接近原点的 K 个点
    水域大小
    根据数字二进制下 1 的数目排序
    有效的山脉数组
    岛屿的周长
    求根到叶子节点数字之和
    数组中的最长山脉
    [转] 结构体file_operations
    获取主机硬件资源 函数
    readdir() 获取文件类型
  • 原文地址:https://www.cnblogs.com/assassin/p/3518343.html
Copyright © 2011-2022 走看看