如何在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一章。 另请参阅我对“设计命令行参数的良好习惯?”的回答 。
main
function(签名int main(int argc, char**argv);
以及这样的[可能]签名由C标准定义) – 由execve
启动的程序 – 得到正参数计数和NULL
终止字符串数组。 所以在你的情况下( ./testmt signal1 3 5 1 1
)你得到argc=6
而argv[0]
是"./testmt"
argv[1]
是"signal"
, argv[2]
是"3"
等等… argv[5]
是最后一个"1"
, argv[6]
是NULL
。
所以深入你的代码,并寻找main
。
PS。 AFAIK,在Windows上的行为可能不同。 程序(不是shell)正在扩展参数(实际上,可能在启动文件中完成,然后才调用main
)。 但我对Windows一无所知。 另请参见操作系统:三个简单的部分 。