`

main输入参数的含义和介绍

阅读更多
本篇来源于互联网******************************************************
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
分享到:
评论

相关推荐

    C++程序中main(int argc, char *argv[])函数的参数意义

    main函数的参数argc和argv[]是C++语言中的两个重要参数,它们分别表示命令行参数的个数和命令行参数的内容。 argc参数是整数类型,表示命令行参数的个数,包括程序名在内。例如,在命令行中输入"myprogram a b c"时...

    java实现七参数转换功能

    首先,我们需要理解七参数的含义: 1. **平移参数**:x、y、z分别代表在X、Y、Z轴方向上的平移量,用于修正两个坐标系之间的整体位置差异。 2. **旋转参数**:α、β、γ分别代表绕X、Y、Z轴的旋转角度,用于纠正...

    int main(int argc,char argv[ ])

    在C语言中,main函数是程序的入口点,main函数的定义方式有多种,但最标准的写法是int main(int argc, char *argv[], char *env[]),其中argc、argv和env三个参数是必不可少的。 首先,了解argc的含义,argc是一个...

    C语言main函数的参数及其返回值详细解析

    返回值的作用 main函数的返回值用于说明程序的退出状态。...假设刚才编译好的文件是a.exe,如果输入“a && dir”,则会列出当前目录下的文件夹和文件。但是如果改成“return -1”,或者别的非0值,重新编译后输入“a &

    程序设计-指针作为main函数的形参.pptx

    1. `int main(void)`:这个版本的`main`函数不接受任何参数,表示程序不依赖于命令行输入。 2. `int main(int argc, char *argv[])`:这是最常见的形式,接受两个参数。`argc`(argument count)是一个整型变量,...

    主函数main中变量(int argc,char argv[])的含义

    argc和argv[]是C语言中主函数main的两个重要变量,它们是命令行参数的载体。理解argc和argv[]的作用是C语言编程的基础。通过正确地使用argc和argv[],我们可以编写出功能强大且灵活的命令行程序。 扩展知识 在UNIX...

    26.雷达图绘图参数详解(fmsb包、ggradar包、plotly包全部参数及功能).pdf

    在R语言中,有三个常用的包——fmsb、ggradar和plotly,提供了雷达图绘制的功能,并且各自具有独特的参数和定制选项。 ### 1. fmsb包 fmsb包中的`radar()`函数是绘制雷达图的基础工具。这个函数允许用户自定义轴...

    CPP源程序批量设置输入输出.zip_C#实现_C++竞赛程序批量设置输入输出流_NOIP竞赛_QU6_freopen

    这里的参数含义分别是: - `filename`:要打开的文件名。 - `mode`:指定文件打开模式,如"r"(读取)、"w"(写入)等。 - `stream`:要重定向的流,通常是`stdin`(标准输入)、`stdout`(标准输出)或`stderr`...

    重载运算符,测试输入的长度能否构成一个三角形

    在项目中的"main.cpp"文件很可能是实现这些功能的代码主体,它包含了对重载运算符的定义和使用。可能包含了类的定义,比如`Triangle`或者`Side`,以及包含重载运算符的成员函数。"readme.txt"文件通常包含关于项目的...

    learn_bert-main.zip

    4. **微调过程**:如何将预训练的BERT模型应用到具体任务,包括选择合适的任务损失函数、调整超参数、处理输入数据格式等。 5. **评估指标**:对于不同的下游任务,如文本分类、问答系统,会有对应的评估指标,如...

    main_instantnqw_ABAQUSUMAT_

    7. **输入/输出处理**:学习如何在UMAT中读取和输出数据,比如材料参数、内部变量和计算结果。 8. **调试和验证**:编写完UMAT后,需要进行调试和验证,确保模型在不同测试案例中的表现符合预期。 9. **应用实例**...

    Android中监听EditText文本输入的代码清单.pdf

    2. `onTextChanged(CharSequence s, int start, int before, int count)`:在文本改变时被调用,参数含义与`beforeTextChanged`相同。这里主要用来检查用户输入是否接近最大长度,如果接近,显示提示信息。 3. `...

    matlab“基于智能学习的轮式移动机器人滑动参数估计自适应鲁棒控制”一文相关的MATLAB代码

    6. **说明.txt**:这个文件可能提供了对源码的详细解释,包括各函数的作用、变量含义以及如何运行和调参的说明。 7. **ASMC_main.zip**:这个压缩文件可能包含了主要的MATLAB程序文件,如.m文件,它们是实际执行...

    微信支付demo

    配置:复制/src/main/resources/application.yml.template 生成application.yml文件,并根据自己需要填写相关配置,其中支付相关参数含义请参考WxPayProperties类中的注释(需要注意的是:yml文件内的属性冒号后面的...

    实例分析Java中public static void main(String args[])是什么意思

    Java中的`public static void main(String[] args)`是每个可独立执行的Java程序的入口点,它的每一个部分都有特定的含义: ...在实际编程中,我们可以利用`main`方法的参数来接收命令行输入,实现更灵活的程序行为。

    C语言课件 自己感觉挺不错的

    基本字符和词汇是C语言的基础元素,包括标识符(用于变量、函数名等)、保留字(如`int`、`void`、`main`等具有特殊含义的关键词)、运算符(如`+`、`-`、`*`、`/`等)以及分隔符(如括号、逗号等)。理解这些基础...

Global site tag (gtag.js) - Google Analytics