洛阳网站建设睿翼网络入驻洛阳,维护网站成本,投资 网站 源码,网页制作与设计代码文章目录 环境变量的认识main函数参数问题 环境变量的认识
我们知道我们运行自己写的可执行程序的时候#xff0c;我们必须带路径才能运行#xff0c;可是执行系统指令的时候不用路径就能运行。 演示#xff1a; 问题#xff1a;系统命令可以直接运行#xff0c;自己写… 文章目录 环境变量的认识main函数参数问题 环境变量的认识
我们知道我们运行自己写的可执行程序的时候我们必须带路径才能运行可是执行系统指令的时候不用路径就能运行。 演示 问题系统命令可以直接运行自己写的程序必须带路径这是为什么 因为系统有环境变量而系统指令的路径在环境变量所维护的路径中自己的可执行程序没有在环境变量所维护的路径。 查看 所以当可执行程序运行系统首先会在环境变量所维护的路径下查看有没有该可执行程序。 那么我们如何让自己的可执行程序不用带路径也能运行呢 将该可执行程序的路径放入环境变量中。 演示 我们看到将路径放入环境变量中后我们的可执行程序确实不用带路径就可以运行了。 PATH指定命令的搜索路径。 env查看系统中的所有环境变量。 演示
修改环境变量一般只在本次对话中有效下次登入后就无效了。除非更改配置但是不建议这种做法。
main函数参数问题
main函数最多有三种参数。 我们看到最后的env指针数组它是什么呢 它就是环境变量它是一个指针数组指向各个环境变量
代码演示 我们可以看到确实用代码打印出了环境变量。 还有系统给我们提供的获取环境变量的接口数组指针也可以打印环境变量。 getenv函数获取环境变量
演示 我们可以看到我们用getenv获取了PATH路径。
进程的环境变量是谁传的 从父进程那继承下来的。 所以bash的环境变量就是所有进程的环境变量。 证明 在bash中添加一个环境变量看代码中能不能输出。 我们看到了确实获取了我们自定义的变量。
结论子进程的环境变量是从父进程那继承来的默认所有环境变量都会被子进程继承。
所以环境变量具有全局属性。但不是所有具有全局属性的变量都是环境变量。这里就不演示了。 set打印所有全局变量。 main函数的argc和argv叫做命令行参数。 argc是多少就觉定argv数组有几个参数 演示 有很多人肯或有疑问这个有什么用 我们学了ls指令ls参数不同就会有不同的功能那么是怎么实现的呢 代码简单演示