zoukankan      html  css  js  c++  java
  • main真正的形状函数

    我们经常使用的像 int main()这种形式,但main长身体机能完全到底是什么样子?

    以下这个main函数的形式可能有些出乎我们的意料:

    int main(int argc, char *argv[], char *envp[])
    

    它可能与绝大多数教科书上描写叙述的都不一样。但实际上,这才是main函数真正完整的形式。

    參数argc指出了执行该程序时命令行參数的个数。数组argv存放了全部的命令行參数。数组envp存放了全部的环境变量。

    环境变量 指的是一组值。从用户登录后就一直存在,非常多应用程序须要依靠它来确定系统的一些细节,我们最常见的环境变量是PATH。它指出了应到哪里去搜索应用程 序,如/bin。HOME也是比較常见的环境变量,它指出了我们在系统中的个人文件夹。

    环境变量一般以字符串"XXX=xxx"的形式存在,XXX表示变量 名,xxx表示变量的值。

    值得一提的是。argv数组和envp数组存放的都是指向字符串的指针,这两个数组都以一个NULL元素表示数组的结尾。

    我们能够通过下面这个程序来观看传到argc、argv和envp里的都是什么东西:

    /* main.c */
    int main(int argc, char *argv[], char *envp[])
    {
    	printf("
    ### ARGC ###
    %d
    ", argc);
    	printf("
    ### ARGV ###
    ");
    	while(*argv)
    		printf("%s
    ", *(argv++));
    	printf("
    ### ENVP ###
    ");
    	while(*envp)
    		printf("%s
    ", *(envp++));
    	return 0;
    }
    

    编译它:

    $ cc main.c -o main
    

    执行时。我们有益加几个没有不论什么作用的命令行參数:

    $ ./main -xx 000
    ### ARGC ###
    3
    ### ARGV ###
    ./main
    -xx
    000
    ### ENVP ###
    PWD=/home/lei
    REMOTEHOST=dt.laser.com
    HOSTNAME=localhost.localdomain
    QTDIR=/usr/lib/qt-2.3.1
    LESSOPEN=|/usr/bin/lesspipe.sh %s
    KDEDIR=/usr
    USER=lei
    LS_COLORS=
    MACHTYPE=i386-redhat-linux-gnu
    MAIL=/var/spool/mail/lei
    INPUTRC=/etc/inputrc
    LANG=en_US
    LOGNAME=lei
    SHLVL=1
    SHELL=/bin/bash
    HOSTTYPE=i386
    OSTYPE=linux-gnu
    HISTSIZE=1000
    TERM=ansi
    HOME=/home/lei
    PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/lei/bin
    _=./main
    

    我们看到。程序将"./main"作为第1个命令行參数,所以我们一共同拥有3个命令行參数。

    这可能与大家平时习惯的说法有些不同。小心不要搞错了。

    最后是一句我喜欢的话

    一个人总要走陌生的路,看陌生的风景,听陌生的歌,然后在某个不经意的瞬间,你会发现,原本费尽心机想要做的事。不知怎的,你已经可以从容面对。

    版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 相关阅读:
    委托
    apply()和call()
    Sql小技巧
    plsql中文乱码
    Windows8中使用IE8等低版本浏览器
    React Native
    谷歌浏览器添加flash白名单
    jsonp原理详解
    垂直居中
    window.moveTo(),window.moveBy()不生效
  • 原文地址:https://www.cnblogs.com/blfshiye/p/4689064.html
Copyright © 2011-2022 走看看