当前位置: 首页 > 编程日记 > 正文

Linux下控制环境变量

查看环境变量

查看某一环境变量:比如我们需要查看HOME这个环境变量,我们可以在shell下直接输入echo $HOME
我们可以把所有的环境变量和环境变量的值都打印出来

打印环境变量

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

下面提供了一个程序打印环境变量

#include<stdio.h>2 int main()3 {4     //libc中定义的全局变量environ指向环境变量表,environ没有包含在任何头⽂文件中,所以5     //在使⽤用时 要⽤用extern声明。6     extern char** environ;7 //    while(environ)8 //    {9 //      printf("%s\n",*environ++);10 //    }11 //    printf("hah");12     int i = 0;13     for(i = 0;environ[i]!=NULL;i++)14     {15         printf("%s\n",environ[i]);16     }17     return 0;18 }

控制环境变量接口getenv,setenv,unsetenv

  • getenv()函数
#include <stdlib.h>char *getenv(const char *name);

getenv()功能的搜索环境列表找到环境变量名称,并返回一个
指向相应值串的指针。如果没有找到则返回NULL

  • setenv()函数和unsetenv
#include <stdlib.h>int setenv(const char *name, const char *value, int overwrite);int unsetenv(const char *name);

setenv()是设置环境变量,如果成功则返回0,如果没有成功则返回非0

unsetenv()是删除一个环境变量

下面提供一段程序大家可以自行的测试一下

#include <stdio.h>  
#include <stdlib.h>  
#include <string.h>  int main(void)  
{  char* val;  const char* name ="ABC";  //获取ABC环境变量的值  val = getenv(name);  printf("No.1  %s=%s\n", name, val);  //覆盖写入环境变量  setenv(name, "I amsure of that I will get it", 1);  printf("No.2%s=%s\n", name, val);  val = getenv(name);  printf("No.3%s=%s\n", name, val);  //删除一个环境变量  int ret =unsetenv("ABC");  printf("ret =%d\n",ret);  val = getenv(name);  printf("No.3 %s=%s\n",name, val);  return 0;  
}  

相关文章:

研究性能测试工具之systemtap入门指南(四)

运行脚本[rootBL480-64 jinyz]#stap topexe.stp输出结果&#xff1a; SYSCALL COUNT find 101910 oracle 1562 modclusterd 1184 pcscd 535 clustat …

linux 编译mqtt静态库_编译MQTT C++ Client

nmake -f ms\nt.mak(这是静态库,动态库是ntdll.mak)nmake -f ms\nt.mak test(测试命令,如果成功则最后显示“passed all tests”字样)nmake -f ms\nt.mak install 成功则会在C:\openss\win64目录下生成bin、include、lib、ssl四个文件夹如果需要编译动态库&#xff0c;nm…

ubuntu 目录结构

转载于:https://www.cnblogs.com/perfy/archive/2012/07/08/2581854.html

pandas 读csv文件 TypeError: Empty 'DataFrame': no numeric data to plot

简单的代码&#xff0c;利用pandas模块读csv数据文件&#xff0c;这里有两种方式&#xff0c;一种是被新版本pandas遗弃的Series.from_csv&#xff1b;另一种就是pandas.read_csv 先说一下问题这个问题就是在读csv文件时&#xff0c;默认的数据是object类型&#xff0c;因而没有…

Linux的僵尸进程

僵尸进程的简单理解 linux中有几种进程状态&#xff0c;其中有一种特殊就是僵尸进程&#xff0c;个人理解是可以这样理解&#xff0c;就是我们 的子进程已经退出了&#xff0c;但是子进程退出了之后无家可归&#xff0c;就是一个飘移的孤魂野鬼一样&#xff0c;所以形象的取名字…

class function或class procedure是什么意思

类函数\类过程. 它们是直接操作在类上面(没有实例化的对象) 下面是Delphi Help 的描述 A class method is a method (other than a constructor) that operates on classes instead of objects. The definition of a class method must begin with the res…

pythonshell画图_Python Shell下使用matplotlib

Python Shell下使用matplotlibCreated Monday 10 December 2012matplotlib默认是延迟绘图直到脚本结束&#xff0c;因为绘图是一个高代价的操作。所以可能不想每次每个属性的改变就更新绘图&#xff0c;只有所有的属性都改变了才更新。但是&#xff0c;当在python shell上工作时…

大地坐标的概念 大地坐标系的举例和说明分类

大地坐标大地测量中以参考椭球面为基准面的坐标。地面点P的位置用大地经度L、大地纬度B和大地高H表示。当点在参考椭球面上时&#xff0c;仅用大地经度和大地纬度表示。大地经度是通过该点的大地子午面与起始大地子午面之间的夹角&#xff0c;大地纬度是通过该点的法线与赤道面…

C# 在用户控件中添加自定义事件

/// <summary> /// 用户控件 /// </summary> public partial class UCMyControl : UserControl {//定义委托//EventArgs 可以自己定义参数的类型&#xff0c;一般情况下定义为(object sender&#xff0c;EventArgs e)public delegate void SelectedValueChanged(o…

标准h5的定位_H5中的定位

这次给大家带来H5中的定位&#xff0c;H5中定位的注意事项有哪些&#xff0c;下面就是实战案例&#xff0c;一起来看一下。一.定位流分类1.1相对定位1.2绝对定位1.3固定定位1.4静态定位二.什么是相对定位?相对定位就是相对于自己以前在标准流中的位置来移动position: relative…

数据库开发基本操作-关于sql server 2005 未开放1433端口的问题

有些sql server 2005在安装过程中&#xff0c;可能将SQL server 服务的端口配置成了动态端口&#xff0c;没有使用默认的1433端口&#xff0c;从而导致了sql server 2005 的服务启动了&#xff0c;但是却没有开启1433端口。解决办法就是取消动态端口&#xff0c;并将端口改成14…

Java8内存模型—永久代(PermGen)和元空间(Metaspace)

一、JVM 内存模型 根据 JVM 规范&#xff0c;JVM 内存共分为虚拟机栈、堆、方法区、程序计数器、本地方法栈五个部分。 1、虚拟机栈&#xff1a;每个线程有一个私有的栈&#xff0c;随着线程的创建而创建。栈里面存着的是一种叫“栈帧”的东西&#xff0c;每个方法会创建一个栈…

web server大全之GoAhead移植(转载)

转自:http://linux.chinaunix.net/techdoc/develop/2009/06/19/1119124.shtml 注&#xff1a;最近在做goAhead web server和移植其到TI芯片linux上&#xff0c;这里先转一篇相关的文章来学习下&#xff0c;希望有所帮助。。。 ******************************* * web server大全…

tomcat苹果版安装步骤_Mac系统安装和配置tomcat步骤详解

一:下载打开Apache Tomcat官网,选择需要的版本下载:二:存放到本地文件夹重名民为ApacheTomcat,放到/Users/计算机名/Library/目录下三:启动Tomcat打开Terminal,进入ApacheTomcat所在目录的bin目录下$:cd /Users/mymac/Library/ApacheTomcat/bin1启动Tomcat$:./startup.sh1如果出…

Oracle 11g 数据类型

Oracle 11g Datatypes VARCHAR2(size [BYTE | CHAR]) 可变长度的字符串的最大长度有大小字节或字符。最大尺寸是4000字节或字符&#xff0c;最低为1个字节或1个字符。您必须指定VARCHAR2大小。 字节表示该列将有字节长度语义。 CHAR列表示将字符语义。 NVARCHAR2(size) 可变长度…

《DSP using MATLAB》Problem 6.3

天不亮又醒了&#xff0c;拍了张景象&#xff0c;这就是黎明前的黑暗吗 转载于:https://www.cnblogs.com/ky027wh-sx/p/9569038.html

进程间通信--命名管道

几个术语 二义性&#xff1a;当我们往一个管道里面写端写数据的时候&#xff0c;比如写一个hello的时候&#xff0c;当我们写到he的时候&#xff0c;读端就已经开始读取数据了&#xff0c;所以这是不对的&#xff0c;这就是二义性临界资源&#xff1a;多个流可以访问的一个共同…

websocket心跳链接代码_WebSocket原理与实践(五)--心跳及重连机制

在使用websocket的过程中&#xff0c;有时候会遇到网络断开的情况&#xff0c;但是在网络断开的时候服务器端并没有触发onclose的事件。这样会有&#xff1a;服务器会继续向客户端发送多余的链接&#xff0c;并且这些数据还会丢失。所以就需要一种机制来检测客户端和服务端是否…

【转载】Asp.Net 全生命周期

用三张图片详解Asp.Net 全生命周期 此文是转载阳阳多的博客内容&#xff0c;特此声明。 下面我们使用三张图片解析ASP.net的整个生命周期&#xff0c;我总感觉使用图片更加的清楚的说明这种问题&#xff0c;所以使用的这样方式 说明&#xff1a; 1 第一张图片从全局说明从客户…

Context-Based Access Control (CBAC) 基于上下文的访问控制 理论知识

CBAC即基于上下文的访问控制协议&#xff0c;通过检查防火墙的流量来发现管理TCP和UDP的会话状态信息。这些状态信息被用来在防火墙访问列表创建临时通道。通过在流量一个方向上配置ip inspect列表&#xff0c;放行其返回流量。被允许会话是指来源于受保护的内部网络会话。它不…

week6 10 后端backend server和mongoDB通信

0 之前我们maogoDB用的是在线的mlab 在线他们帮我们做好了model 也就是那个schma 其实python也有类似的包 帮我们定义这些model 但是呢 我们自己来做吧 用一个传统的意义上mongoDB 就是 insert select来操作数据库 就是在不用其他类库 定义的model 我们如何操作数据库 我们这次…

Linux网络端口

Linux下端口个数 首先简单介绍一下Linux下的端口的函数&#xff0c;当Linux各个主机之间进行通信的时候我们需要将某些数据进程传输&#xff0c;这个时候就需要将数据传入到某一个特定 的主机&#xff0c;这个时候就使用了TCP/IP协议&#xff0c;IP地址是用来标识互联网的唯一…

汉字书写解码_《汉字解码学》   第一部分

《汉字解码学》第一部份汉字与世界密码文字的关系文字是人类语言的书写符号&#xff0c;是人类用来进行传递信息以便进行交流的可见符号系统。文字是人类文明的标识和产物。我们的祖先是如何来到中国的&#xff1f;世界科学研究关于人类基因的研究的最新成果表明&#xff1a;世…

WCF中服务继承多个契约的使用

服务继承多个契约其实也就是服务类实现了多个接口&#xff0c;主要是在配置中需要添加多个endpoint&#xff0c;各个endpoint之间的address不同、contract不同 契约&#xff1a; [html] view plaincopyprint?[ServiceContract] public interface IReportService { [Ope…

Pentaho平台上加仪表盘插件步骤

Pentaho平台上加仪表盘插件步骤 下面我将最近学习的在Pentaho平台上加仪表盘插件的步骤稍微整理了一下&#xff0c;希望对有需要的朋友有些帮助。 1. 解压插件包&#xff1a;cdf-de_0.2.tar.bz2&#xff08;这个插件压缩包我即将上传&#xff09; &#xff0c;得到cdf- de_0.2 …

2018.09.01 poj3071Football(概率dp+二进制找规律)

传送门 概率dp简单题。 设f[i][j]表示前i轮j获胜的概率。 如果j,k能够刚好在第i轮相遇&#xff0c;找规律可以发现j,k满足&#xff1a; (j−1)>>(i−1)(j−1)>>(i−1)^1(k−1)>>(i−1)1(k−1)>>(i−1)。 简单举个例子&#xff1f; 假设有八个人&a…

循环冗余检验CRC

CRC简介 循环冗余校验(Cyclic Redundancy Check, CRC)是一种根据网络数据包或电脑文件等数据产生简短固定位数校验码的一种散列函数&#xff0c;主要用来检测或校验数据传输或者保存后可能出现的错误。它是利用除法及余数的原理来作错误侦测的。 在数据传输过程中&#xff0c…

弹性碰撞后速度方向_$1.1.1 弹性碰撞经典例题1——力学及运动学

[ph1] 质量为2m的木块放置于质量为m的长木板上&#xff0c;木块与模板之间的动摩擦系数为 μ &#xff0c;木板与地面的摩擦忽略不计。木块和木板以速度V0向右运动&#xff0c;在右侧足够远处有刚性墙壁&#xff0c;木块与墙壁发生完全弹性碰撞后向左运动&#xff0c;木板有足够…

一个简单实用的,基于EF的三层架构

到底什么样的框架才是好框架呢?或许不同人有不同的看法.我个人觉一个好的框架,最重要的要是简单实用,能快速适开发,可维护性高(不会出现复制黏贴的代码),并能快速响应各种业务场景的变化的框架,同时性能不会太差.我觉的这样的框架,就是一个好的框架.而且,我觉的做框架,千万不能…

转:中国互联网十五年的22个创新模式

中国互联网十五年的22个创新模式 今天&#xff0c;看网上有人推荐《沸腾十五年》&#xff0c;讲中国互联网从发源到现今。 有人有如此梳理&#xff0c;自己本来也想梳理一下中国互联网这么多年&#xff0c;到底是哪些公司出来了&#xff0c;为什么会是他们出来了。他们的…