本篇来源于互联网******************************************************
http://blog.csdn.net/study_2011/article/details/7392388
main()函数是C应用程序的入口点,编译后的可执行文件都是从main函数开始执行的。在执行过程开始时,会执行main()函数,在main()函数执行完毕时,执行过程就结束了。
主函数main()可以有或没有参数列表,通常最多支持3个参数。
1. int main()
2. int main(int argc, char *argv[])
3. int main(int argc, char **argv)
4. int main( int argc, char *argv[] , char *envp[])
上述的1,2,3比较常用,第4种用法比较少见。
main()函数一般用int或者void形的。用int型定义main更好些,因为在结束的时候可以返回给操作系统一个值以表示执行情况。
下面介绍一下main函数各个参数的含义:
1.int argc
表示在命令行下输入命令的时候,一共有多少个参数。例如:
./test arg1 arg2
那么argc的值是3,命令名加上两个参数,一共三个参数。argc代表参数的数量, main()函数本身是在索引0为的第一参数。 所以, argc总是至少为1 。
2.char *argv[]
输入参数数组,真正的参数以字符串数组(即第2个参数argv[])的形式来传递。每一个字符串均有自己意思。argv[0]存放可执行程序本身。
例如:
./test
argc的值是1,argv[0]的值是 "test"
./test arg1 arg2
argc的值是3,argc[0]的值是"test",argc[1]的值是" arg1 ",argc[2]的值是" arg2"。
3.char *envp[]
相对来说用得比较少,它是用来取得系统的环境变量的。Envp是编译器扩展地语法,标准是不支持的,虽然现在很多编译器都支持,但是考虑到程序的移植性更好,进行避免使用。要获得环境变量的值还是用getenv比较好。
Linux的环境变量可以通过env命令察看,通过setenv 或export进行设置。例如:
$ env
PATH=/home/global/Linux-x86_64-rhel4/bin:/home/global/unknown/bin:/home/tools/infra/SGE/bin/lx24-amd64:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin
SHELL=/bin/tcsh
SSH_CLIENT=::ffff:10.101.0.131 49427 22
SSH_CONNECTION=::ffff:10.101.0.131 49427 ::ffff:10.101.0.119 22
SSH_TTY=/dev/pts/1
TERM=xterm
HOSTTYPE=x86_64-linux
VENDOR=unknown
OSTYPE=linux
MACHTYPE=x86_64
SHLVL=1
GROUP=users
HOST=sclab-19
下面的例程,演示了arg的使用和含义。
/* argtest.c */
#include<stdio.h>
int main(int argc, char *argv[], char *envp[])
{
int i;
printf("You have inputed total %d argments\n", argc);
/* argv */
for (i = 0; i < argc; i++)
{
printf("\targ%d is : %s\n", i, argv[i]);
}
/* envp */
printf("This is enviroment info:\n");
for (i = 0; envp[i] != NULL; i++)
{
printf("\t%s\n", envp[i]);
}
return 0;
}
$ gcc -g argtest.c -o argtest
$ ./argtest this is arg test
You have inputed total 5 argments
arg0 is : ./argtest
arg1 is : this
arg2 is : is
arg3 is : arg
arg4 is : test
This is enviroment info:
….
PATH=/home/global/Linux-x86_64-rhel4/bin:/home/global/unknown/bin:/home/tools/infra/SGE/bin/lx24-amd64:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin
分享到:
相关推荐
main函数的参数argc和argv[]是C++语言中的两个重要参数,它们分别表示命令行参数的个数和命令行参数的内容。 argc参数是整数类型,表示命令行参数的个数,包括程序名在内。例如,在命令行中输入"myprogram a b c"时...
首先,我们需要理解七参数的含义: 1. **平移参数**:x、y、z分别代表在X、Y、Z轴方向上的平移量,用于修正两个坐标系之间的整体位置差异。 2. **旋转参数**:α、β、γ分别代表绕X、Y、Z轴的旋转角度,用于纠正...
在C语言中,main函数是程序的入口点,main函数的定义方式有多种,但最标准的写法是int main(int argc, char *argv[], char *env[]),其中argc、argv和env三个参数是必不可少的。 首先,了解argc的含义,argc是一个...
返回值的作用 main函数的返回值用于说明程序的退出状态。...假设刚才编译好的文件是a.exe,如果输入“a && dir”,则会列出当前目录下的文件夹和文件。但是如果改成“return -1”,或者别的非0值,重新编译后输入“a &
1. `int main(void)`:这个版本的`main`函数不接受任何参数,表示程序不依赖于命令行输入。 2. `int main(int argc, char *argv[])`:这是最常见的形式,接受两个参数。`argc`(argument count)是一个整型变量,...
argc和argv[]是C语言中主函数main的两个重要变量,它们是命令行参数的载体。理解argc和argv[]的作用是C语言编程的基础。通过正确地使用argc和argv[],我们可以编写出功能强大且灵活的命令行程序。 扩展知识 在UNIX...
在R语言中,有三个常用的包——fmsb、ggradar和plotly,提供了雷达图绘制的功能,并且各自具有独特的参数和定制选项。 ### 1. fmsb包 fmsb包中的`radar()`函数是绘制雷达图的基础工具。这个函数允许用户自定义轴...
这里的参数含义分别是: - `filename`:要打开的文件名。 - `mode`:指定文件打开模式,如"r"(读取)、"w"(写入)等。 - `stream`:要重定向的流,通常是`stdin`(标准输入)、`stdout`(标准输出)或`stderr`...
在项目中的"main.cpp"文件很可能是实现这些功能的代码主体,它包含了对重载运算符的定义和使用。可能包含了类的定义,比如`Triangle`或者`Side`,以及包含重载运算符的成员函数。"readme.txt"文件通常包含关于项目的...
4. **微调过程**:如何将预训练的BERT模型应用到具体任务,包括选择合适的任务损失函数、调整超参数、处理输入数据格式等。 5. **评估指标**:对于不同的下游任务,如文本分类、问答系统,会有对应的评估指标,如...
7. **输入/输出处理**:学习如何在UMAT中读取和输出数据,比如材料参数、内部变量和计算结果。 8. **调试和验证**:编写完UMAT后,需要进行调试和验证,确保模型在不同测试案例中的表现符合预期。 9. **应用实例**...
2. `onTextChanged(CharSequence s, int start, int before, int count)`:在文本改变时被调用,参数含义与`beforeTextChanged`相同。这里主要用来检查用户输入是否接近最大长度,如果接近,显示提示信息。 3. `...
6. **说明.txt**:这个文件可能提供了对源码的详细解释,包括各函数的作用、变量含义以及如何运行和调参的说明。 7. **ASMC_main.zip**:这个压缩文件可能包含了主要的MATLAB程序文件,如.m文件,它们是实际执行...
配置:复制/src/main/resources/application.yml.template 生成application.yml文件,并根据自己需要填写相关配置,其中支付相关参数含义请参考WxPayProperties类中的注释(需要注意的是:yml文件内的属性冒号后面的...
- 了解函数功能、参数数量、顺序、含义和类型,以及返回值的意义和类型。 - 如果需要,包含相应的头文件,以使编译器知道函数的定义。 函数是C语言的核心组成部分,理解和熟练使用函数对于编写高效、可维护的C...
Java中的`public static void main(String[] args)`是每个可独立执行的Java程序的入口点,它的每一个部分都有特定的含义: ...在实际编程中,我们可以利用`main`方法的参数来接收命令行输入,实现更灵活的程序行为。