如何在C中搜索命令行参数?

我编译并运行了一个C代码(很多文件),但我需要了解命令行参数的物理意义。我运行这样的代码

./testmt signal1 3 5 1 1 

其中signal1是输入文件

如何搜索多个.c文件以查找命令行参数(希望使用注释行)?

它是特定于操作系统的。 我想你是在Linux或其他一些Posix系统上。 首先阅读高级Linux编程 。 阅读关于globbing的内容 。 请注意,您的Unix shell正在扩展参数(并在扩展后调用execve(2)系统调用….)。 如果你的shell是bash (实际上这个行为是由POSIX强制执行的),请阅读Shell Operation然后了解Shell扩展 。 另请阅读libc文档的Program Arguments一章。 另请参阅对“设计命令行参数的良好习惯?”的回答

mainfunction(签名int main(int argc, char**argv);以及这样的[可能]签名由C标准定义) – 由execve启动的程序 – 得到正参数计数和NULL终止字符串数组。 所以在你的情况下( ./testmt signal1 3 5 1 1 )你得到argc=6argv[0]"./testmt" argv[1]"signal"argv[2]"3"等等… argv[5]是最后一个"1"argv[6]NULL

所以深入你的代码,并寻找main

PS。 AFAIK,在Windows上的行为可能不同。 程序(不是shell)正在扩展参数(实际上,可能在启动文件中完成,然后才调用main )。 但我对Windows一无所知。 另请参见操作系统:三个简单的部分