关闭

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

标签: 操作系统
240人阅读 评论(0) 收藏 举报
分类:

我们编写的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);

}

~


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:14949次
    • 积分:601
    • 等级:
    • 排名:千里之外
    • 原创:45篇
    • 转载:1篇
    • 译文:1篇
    • 评论:0条