zoukankan      html  css  js  c++  java
  • 进程环境之环境变量

    环境字符串的形式通常如下:

    name=value

    UNIX内核并不查看这些字符串,它们的解释完全取决于各个应用程序。

    ISO C定义了一个函数getenv,可以用于取环境变量值,但是该标准又称环境变量的内容是由实现定义的。

    #include <stdlib.h>
    char *getenv( const char *name );
    返回值:指向与name关联的value的指针,若未找到则返回NULL

    注意,此函数返回一个指针,它指向name=value字符串中的value。我们应当使用getenv从环境中取一个指定环境变量的值,而不是直接访问environ。

    除了取环境变量的值,有时也需要设置环境变量。我们可能希望改变现有变量的值,或者增加新的环境变量。(我们能影响的只是当前进程及调用的任何子进程的环境,但不能影响父进程的环境,这通常是一个shell进程。尽管如此,修改环境变量的能力仍然是很有用的。)

    #include <stdlib.h>
    int putenv( char *str );
    int setenv( const char *name, const char *value, int rewrite );
    int unsetenv( const char *name );
    三个函数返回值:若成功则返回0,若出错则返回非0值

    这三个函数的操作是:

    putenv取形式为name=value的字符串,将其放到环境表中。如果name已经存在,则先删除其原来的定义。

    setenv将name设置为value。如果在环境中name已经存在,那么(a)若rewrite非0,则首先删除其现有的定义;(b)若rewrite为0,则不删除其现有定义(name不设置为新的value,而且也不会出错)。

    unsetenv删除name的定义。即使不存在这种定义也不算出错。

    本篇博文内容摘自《UNIX环境高级编程》(第二版),仅作个人学习记录所用。关于本书可参考:http://www.apuebook.com/

  • 相关阅读:
    开发JQuery插件标准结构
    JavaScript中的正则表达式
    IntelliJ IDEA 之Web的Facets/Artifacts(八)
    IntelliJ IDEA 快捷键(七)
    IntelliJ IDEA 集成各种插件(六)
    [转]VS2010几款超赞的扩展辅助工具总结
    创建和使用动态链接库(转)vs2008 vs2010
    springboot 自定义Repository
    springboot redis 缓存对象
    springboot 集成spring-session redis 实现分布式session
  • 原文地址:https://www.cnblogs.com/nufangrensheng/p/3508319.html
Copyright © 2011-2022 走看看