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

标签 c arguments

我正在自学 C,并且正在编写一个接受命令行参数的程序。

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

我想知道,是否有任何方法可以限制可以传递给该程序的参数数量,比如说,我传递了多少参数,它只接受前两个?我之所以想到这一点是因为我不想在程序的内存中保留大量参数(可能是愚蠢的想法)。

最佳答案

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

  1. 忽略额外参数
  2. 退出并出现错误。

    #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);
    }
    

关于C 如何在命令行中传递确切数量的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24812560/

相关文章:

c - 当同一个文件中同时存在变量声明及其外部声明时,这意味着什么?

c - 在 BPF 程序中从指向大型结构的指针检索字段时权限被拒绝

C语言中将一种数据结构复制到另一种数据结构

bash - 转义 bash 函数参数以供 su -c 使用

c++ - 延迟函数调用,如何传递参数?

javascript - 为什么这个值在reduce范围内未定义,但在for循环中定义? (javascript)

python - Python 中 iter 函数的第二个参数是什么?

c++ - Quest 库(Quest 身份验证服务)线程安全吗?

c - argv 和波兰语符号计算器

以泛型类作为参数的 Java 方法