文章目录
前言
本节将会对环境变量部分进行详细介绍 !
一、命令行参数
1 . 是什么 ?
先回答一个问题 ? main 函数有没有参数 ?
答 : 有的 !
看一个代码 :
// 1 . main 函数有参数吗 ? 答 : 有
#include <stdio.h>
int main(int argc , char* argv[]) // 这个就是 main 函数的两个基本参数
{
printf("Hello Linux !\n");
return 0;
}
2 . 我们使用的命令选项来源
我们在命令行敲下的命令 , 本质就是一个字符串 , bash 会将字符串划分 .
然后传给命令行参数 , 这样就会执行相应的程序 !
#include <stdio.h>
#include <string.h>
int main(int argc , char* argv[]) // 这个就是 main 函数的两个基本参数
{
// 两个参数 , 假如命令行敲下 : ./envir -a 这就是两个参数
if(argc != 2)
{
printf("Usage: %s [-a|-b|-c]\n", argv[0]);
return 1;
}
const char *arg = argv[1];
if(strcmp(arg, "-a")==0)
printf("这是功能1\n");
else if(strcmp(arg, "-b")==0)
printf("这是功能2\n");
else if(strcmp(arg, "-c")==0)
printf("这是功能3\n");
else
printf("Usage: %s [-a|-b|-c]\n", argv[0]);
return 0;
}
3 . 为什么 main 有命令行参数 ?
二、环境变量
1 . 常见环境变量
2 . 命令查看环境变量
3 . 为什么我们写的程序需要 ./ 才能运行可执行程序呢 ?
4 . 相关基本命令
5 . 通过代码方式查看环境变量(推荐系统调用)
1. 通过命令行参数的第三个参数
补充 , main 函数最多几个参数 ?
答 : 最多三个 , 分别为 : int argc , char* argv[] , char* environ[]
// 代码方式获取环境变量 , 第三个参数
#include <stdio.h>
// main 函数中第三个参数 , environ[]
int main(int argc , char* argv[] , char* environ[])
{
for(int i = 0; environ[i]; i++)
{
printf("environ[%d]-> %s\n", i, environ[i]);
}
return 0;
}
2. 系统调用获取环境变量(推荐 , 掌握)
///////////// 通过系统调用 getenv
#include <stdio.h>
#include <stdlib.h>
int main()
{
const char* str = getenv("PATH");
printf("%s\n",str);
return 0;
}
3. 通过全部变量 environ(了解)
#include <stdio.h>
int main(int argc, char *argv[])
{
extern char **environ;
int i = 0;
for(; environ[i]; i++){
printf("%s\n", environ[i]);
}
return 0;
}
三、bash 中的两张表