C如何在命令行中传递确切数量的参数

时间:2014-07-17 20:06:43

标签: c arguments

我自己学习C语言,而且我正在编写一个接受命令行参数的程序。

main(int argc, char **argv)
chdir (argv[1]);

我想知道,如果有任何方法我可以限制可以传递给这个程序的参数数量,比如说,我传递了多少个参数,它只接受前2个?我正在考虑这个因为我不想在程序的记忆中保留大量的参数(可能是愚蠢的想法)。

1 个答案:

答案 0 :(得分:1)

没有办法限制操作系统可以以编程方式传递给程序的参数数量......但是,您可以执行以下两项操作之一:

  1. 忽略额外参数
  2. exit有错误。

    #include <stdio.h>
    #include <stdlib.h>
    
    #define EXPECTED_NUMBER_OF_ARGUMENTS (2) 
    
    int main(int argc, char *argv[])
    {
        if(argc != EXPECTED_NUMBER_OF_ARGUMENTS)
        {
            fprintf(stderr, "usage: %s (val)", argv[0]);
            exit(EXIT_FAILURE);
        }
        ...
        exit(EXIT_SUCCESS);
    }