我正在自学 C,并且正在编写一个接受命令行参数的程序。
main(int argc, char **argv)
chdir (argv[1]);
我想知道,是否有任何方法可以限制可以传递给该程序的参数数量,比如说,我传递了多少参数,它只接受前两个?我之所以想到这一点是因为我不想在程序的内存中保留大量参数(可能是愚蠢的想法)。
最佳答案
无法限制操作系统可以通过编程方式传递给程序的参数数量...但是,您可以执行以下两种操作之一:
- 忽略额外参数
退出
并出现错误。#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/