命令行参数、环境变量

本文介绍了编程中命令行参数的使用,如C语言的`main`函数中的`argc`和`argv`,以及环境变量的作用,如PATH变量及其在程序执行中的影响。还探讨了如何通过`env`指令查看和操作环境变量,以及全局环境变量与本地变量的区别。
摘要由CSDN通过智能技术生成

1. 命令行参数

大家平时在写主函数时基本是无参的,但其实是有参数的,先介绍前两个参数。

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

第二个参数是指针数组,第一个参数是该数组的个数,我们先来写
一段代码来看看指针数组里面是什么。

  1 #include <stdio.h>
  2 
  3 int main(int argc,char* argv[])
  4 {
  5     for(int i = 0; i < agrc; i++)
  6         printf("argv[%d]: %s\n",i,argv[i]);
  7     return 0;                                                                                                                                                       
  8 }    

在这里插入图片描述

很明显,里面存放的就是我们输入的命令行,这种模式大家有没有很熟悉,没错,就是我们linux的指令,所以指令也是以命令行参数的形式实现的。

2.环境变量

在我们语言层面也有变量的概念,其实是很相似的。因为变量的本质就是开辟一块空间,给这个空间填充内容和取名字。环境变量的本质也就是操作系统开辟的一块空间。
环境变量是具有特定作用的,我们来举个例子。
我们平时执行我们写的一个程序都要带上./,但为什么执行系统的指令就不需要呢?这是因为PATH这个环境变量存放着操作系统搜索可执行程序的路径。我们用echo $变量名 来查看一下PATH
在这里插入图片描述
如果我们想使自己写的程序也能像系统程序一样,根据上面,有两个思路,第一是将自己的程序放到上面任意一个路径中,第二是改变PATH的内容,将自己程序的路径添加上去。

env指令可以查看所以环境变量
在这里插入图片描述
还有种方式也可以查看环境变量,就是main函数的第三个参数,要求以NULL结尾

     #include <stdio.h>
     int main(int agrc,char* agrv[],char* env[])
     {
         int i;
         for(i = 0;env[i];i++)
            printf("%s\n",env[i]);                                                                                                                                    
        return 0;
    }

在这里插入图片描述
用第三方变量也可以获取

#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;
}

libc中定义的全局变量environ指向环境变量表,environ没有包含在任何头文件中,所以在使用时 要用extern声明。

export指令可以让用户自己创建环境变量
在这里插入图片描述

环境变量又叫全局环境变量,因为它会被所有后代进程所继承。

与环境变量相对的一个概念叫本地变量,本地变量只在本次登陆有效。定义的本地变量使用env命令看不到,要使用set命令。unset删除变量。

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值