main函数被调用时传递的三个参数

我们编写的main函数,也是一个被调用的函数。像其他的小函数一样,只不过,main是被kernel的_start()函数调用。

调用main函数时候,_start()(还是exec()? 搞不清楚,_start()函数可能是exec()进程的分出来的子进程。)函数也要传递参数给main()。传递三个参数:命令行参数的个数,命令行每个字符串的指针,环境变量。

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

第三个,环境变量,在main()函数的声明中的参数部分并没有,但是有一个库文件中,包含了一个指针数组地址的全局变量,名字叫environ;  如果你写的main函数,想要用到这个变量,那么需要在自己的 .c文件中extern 一下这个变量extern char **environ,表明这个变量不是本文件中的,是别的文件中的。这样就可以使用这个变量了。

可以把下面的代码编译后运行一下,看看打印出了哪些环境变量:

#include "apue.h"

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

{

        int i;

        externchar **environ;

        for (i=0; environ[i]!=NULL; i++)

        {

                printf("环境变量【%d%s\n",i+1,environ[i]);

        }

        printf("环境变量的个数为:%d\n",i);

        return(0);

}

~


阅读更多
文章标签: 操作系统
个人分类: 语法 操作系统
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭