• 进程环境之环境变量


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

    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/

  • 相关阅读:
    IT小小鸟读后感
    关于C语言的问卷调查
    (学习进度表)【第六周】
    (学习进度表)【第五周】
    作业二(过早的放弃是失败的根源)
    读《世界是数字的》笔记
    作业3(学习进度表)【第四周】
    作业1
    读《我是一只IT小小鸟》笔记
    价值观作业
  • 原文地址:https://www.cnblogs.com/nufangrensheng/p/3508319.html
Copyright © 2020-2023  润新知