EXE文件 参数的原理是什么?

来源:百度知道 编辑:UC知道 时间:2024/09/27 19:21:35
在执行exe时可以附带参数执行,这个“参数”的原理是怎么来的?

请用较底层的方式来描述,谢谢!

exe带参数执行,主要是在程序入口函数main()可以带参数。
main(argc,argv)
int argc,char *argv[];
{
.....
}
从函数参数的形式上看,包含一个整型和一个指针数组。当一个C的源程序经过编译、链接后,会生成扩展名为.EXE的可执行文件,这是可以在操作系统下直接运行的文件,换句话说,就是由系统来启动运行的。对main()函数既然不能由其它函数调用和传递参数,就只能由
系统在启动运行时传递参数了。
在操作系统环境下,一条完整的运行命令应包括两部分:命令与相应的参数。其格式为:
命令参数1参数2....参数n¿
此格式也称为命令行。命令行中的命令就是可执行文件的文件名,其后所跟参数需用空格分隔,并为对命令的进一步补充,也即是传递给main()函数的参数。
命令行与main()函数的参数存在如下的关系:
设命令行为:program str1 str2 str3 str4 str5
其中program为文件名,也就是一个由program.c经编译、链接后生成的可执行文件program.exe,其后各跟5个参数。对main()函数来说,它的参数argc记录了命令行中命令与参数的个数,共6个,指针数组的大小由参数argc的值决定,即为char*argv[6] 数组的各指针分别指向一个字符串。应当引起注意的是接收到的指针数组的各指针是从命令行的开始接收的,首先接收到的是命令,其后才是参数。

main函数的参数列表吧

main(int agc,char *agv[])
就象C语言主函数,可以输入不定长参数。
agc统计输入参数个数,包括程序名本身。
agv保存相对输入的参数内容,都是以字串形式保存的,
如在程序中要用整数类型,就通过相应函数转换。
test.exe 100
int a;
a=atoi(agv[1]);