当前位置:  技术问答>linux和unix

写了一个程序来根据名称打印环境变量的值;如果有两个输入参数则修改环境变量为第二个值;修改之后当时可以发现确实修改了,但是重新运行程序,发现没修改啊,

    来源: 互联网  发布时间:2017-04-30

    本文导语:  //这段是读取变量的路径   var=argv[1];   value=getenv(var);   if(value)   printf("Variable %s has value %sn",var,value);   else   printf("Variable %s has no value n",var); //这段是修改路径,修改的路径就是第二个参数   if(argc==3){ ...

//这段是读取变量的路径
  var=argv[1];
  value=getenv(var);
  if(value)
  printf("Variable %s has value %sn",var,value);
  else
  printf("Variable %s has no value n",var);

//这段是修改路径,修改的路径就是第二个参数
  if(argc==3){
  char *string;
  string=malloc(strlen(argv[1])+strlen(argv[2])+2);
  value=argv[2];
  strcpy(string,var);
  strcat(string,"=");
  strcat(string,value);
  printf("Calling new putenv with %s n",string);
  putenv(string);
//显示修改之后的路径 
 value=getenv(var);
  printf("New value of %s is %s n" ,var ,value);
  }
  exit(0);
  }
  
修改之后我再重新运行下这个,发现他的路径没有修改啊

|
楼主的是C文件啊,编译成执行程序后,会作为独立的进程运行。
楼主改变的是这个程序自己的环境变量,
改变之后的环境变量,可以影响这个程序本身和这个程序的子进程的环境变量;
但是不会影响其他进程(包括你的登录shell进程)的环境变量。

    
 
 

您可能感兴趣的文章:

  • shell 程序监控网站网页是否被修改,如果被修改停止服务器的运行?
  • 用JCreator写了一个小程序,有十几个class,当修改某个文件重新编译,javac并没有编译修改的文件,请问要如何做javac才会重新编译所有的
  • 都是“主引导程序”惹的祸————硬盘的主引导程序被修改后应该如何恢复???
  • java的应用程序中如何定义一个全局变量,在程序的任何地方都可以修改使用?
  • 请指点: 在windows下能否通过程序来获取linux下的用户列表,甚至通过自己写的windows程序界面增加修改linux的用户
  • UNIX下 wc,grep,和修改文本文件的c程序的源程序那位高人能否提供一份? zero_baby@163.net
  • [pygtk+glade]怎么用程序修改grid值(有图)
  • 为什么我的applet程序修改了不起作用(win2k),浏览器总是显示前一次装入的程序?
  • jsp程序运行一次后,再修改原jsp程序,为什么运行还是的还是原来的程序??
  • 修改那个配置文件,可以使程序自启动
  • 自己编写一个程序编译进内核,要修改makefile文件吗?
  • 请教如何在程序中修改机器的IP地址?
  • 驱动程序是否需要修改呢?帮顶有分
  • 修改程序地址
  • 这个程序需要在哪些方面做个修改
  • 请指点: 在windows下能否通过程序来获取linux下的用户列表,甚至通过自己写的windows程序界面增加修改linux的用户 100分相赠
  • linux的登录程序能像windows的那样,可以修改么?
  • 如何修改内核 来控制用户空间的程序 的系统调用.
  • linux程序错误修改?
  • 求助:想做个chmod功能的程序,修改文件的权限
  • 程序中获取的环境变量能够根据Linux系统中相应环境变量而变化吗?
  • linux 下设置环境变量 使用了setenv 和putenv 在程序结束以后 发现变量又变回去了
  • 探讨:程序在内存中的分配(常量,局部变量,全局变量,程序代码)问题
  • 关于系统变量,开机启动程序,和定时启动程序
  • java程序环境变量的问题!
  • linux中大量的全局变量怎么体现结构化的程序设计?
  • unix shell中能否将后台运行程序的输出保存到变量中?
  • export 变量到子程序的问题
  • shell脚本变量与应用程序同步的问题
  • 如何在一段程序同步几个变量??
  • 急!送分求助,java程序中如何读取系统环境变量?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 在非GUI程序中,我用JOptionPane.showMessageDialog后,发现程序无法结束。why?
  • 定时top看系统参数,发现我的程序的SIZE项和RES项的数值一直在增加,这是不是说明,我的程序有内存泄漏?
  • 通过JdbcOdbcDriver连接Access出现“未发现数据源名称并且未指定默认驱动程序”
  • 写了一个处理大量文本的程序,发现跑一段时间以后大量的吃掉内存。
  • 搜索别的的时候,发现了这个:“将 MFC 应用程序移植到 Linux”
  • 现在我用c语言在linux下写一个服务端程序现发现了内存泄漏问题
  • 程序访问内存非法退出,调试core时,却发现#0 0x00000000 in ?? () ,奶奶的,已经加了调试信息了
  • Unix上g++编译STL程序出错——“libstdc++.so.5 =>(文件没有发现)”
  • 请问:我正在编linux下的openssl程序,调试时要用443号端口,但我发现不通,应是linux系统占用了,我怎可停了它以作我用,或停了系统的openssl
  • 服务器程序, 使用"top -p PID"命令此进程的详细信息, 发现SIZE和RSS不断增大, 是否一定是内存泄露??
  • 关于inetd。我做了一个测试程序,想计算ftp最多能有多少了连接,我发现当连接到1020次就不可以连接了,哪位大侠知道如何做才能将连接数量增加至10000呢??
  • 我想把一个程序用的几个库全改成so,但发现很成问题,需要把所有相关的东西全搞过去才可以
  • 写了一个servlet程序,但用javac编译时,发现javax.servlet.*,javax.servlet.http.*不存在,为什么?怎样解决?
  • 运行gtk-fb的示例程序发现的问题
  • 程序在运行一段时候(10小时)后,发现cpu占用率99%,此时可能的问题是什么?怎么能定位问题发生源?
  • 我使用corba将Java和C程序连接起来,由Java向C传递一个字符串,但是我发现我原来的0a被换成了0d 0a,那位给各解释。
  • 写了4年程序了,突然发现不知该干点什么,各位高人请进
  • 写了个小程序,比较windows(xp)和linux(fedora4)和速度和大小,发现linux下运行的程序远没有windows下的快。
  • 今天作C语言程序的时候偶有心得,发现自己过去的很多程序是错误的.愿与各位共享.
  • java开源软件 iis7站长之家
  • 为什么我在java程序里启动的一个程序在java程序关闭后,该程序的所有进程都关掉了
  • windows server2008上PowerBuilder程序系统错误解决方法
  • Linux 编程怎么样在程序开启一个程序,和关闭一个程序?
  • c语言判断某一年是否为闰年的各种实现程序代码
  • 请问从一个java程序中如何调用另一java程序,并控制可以其状态(最小化、最大化、结束程序),还有怎样知道那个被调用的程序结束。
  • 程序员的八种级别,你属于哪一级?
  • Linux下的程序是在内存中运行的吗?为什么在程序运行的时候可以删除程序文件?
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • 我的程序是用c写的gtk+程序,有个函数的参数要传给它图片的文件名,但是图片和原程序不在同一目录下怎么办?怎么在程序里指定文件的路径
  • 在docker容器中通过apt-get安装新的程序
  • 为什么linux下的C++程序这么少见? 请问那里有linux下的C++程序?什么类型的程序都可以.


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3