Ubuntu将命令行参数传递给C程序

时间:2011-10-02 13:42:50

标签: c

我正在学习C编程,我编写了示例代码来接受来自终端的参数并打印出参数。

我调用这样的程序:./ myprogram 1

我预计1会打印出参数长度而不是2.为什么会这样?参数“1”

后没有间距
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]) {

    printf("%d", argc);

    return EXIT_SUCCESS;
}

2 个答案:

答案 0 :(得分:7)

第一个参数argv[0]是调用程序的名称。所以有两个参数,第二个,argv[1]是“1”。

修改

要明确编辑:应始终检查argc。然而,不常见的是,argc为0是完全合法的 例如,在Unix上,execvp("./try", (char **){NULL});是合法的。

答案 1 :(得分:2)

“./ myprogram”算作第一个参数。