国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

Linux環(huán)境變量有關(guān)函數(shù)

2019-11-08 01:52:38
字體:
供稿:網(wǎng)友

常見環(huán)境變量

按照慣例,環(huán)境變量字符串都是name=value這樣的形式,大多數(shù)name由大寫字母加下劃線組成,一般把name的部分叫做環(huán)境變量,value的部分則是環(huán)境變量的值。環(huán)境變量定義了進(jìn)程的運(yùn)行環(huán)境,一些比較重要的環(huán)境變量的含義如下:

PATH

可執(zhí)行文件的搜索路徑。ls命令也是一個(gè)程序,執(zhí)行它不需要提供完整的路徑名/bin/ls,然而通常我們執(zhí)行當(dāng)前目錄下的程序a.out卻需要提供完整的路徑名./a.out,這是因?yàn)镻ATH環(huán)境變量的值里面包含了ls命令所在的目錄/bin,卻不包含a.out所在的目錄。PATH環(huán)境變量的值可以包含多個(gè)目錄,用:號(hào)隔開。在Shell中用echo命令可以查看這個(gè)環(huán)境變量的值:

$ echo $PATH 用來描述shell命令的環(huán)境變量

#include <stdio.h>extern char** environ;//引入環(huán)境變量表必須聲明環(huán)境變量int main(void){    int i=0;    for(i=0;environ[i];i++)    {        PRintf("%s/n",environ[i]);    }    return 0;}上面這個(gè)程序編程實(shí)現(xiàn)了打印當(dāng)前程序的環(huán)境變量。

SHELL

當(dāng)前Shell,它的值通常是/bin/bash。

TERM

當(dāng)前終端類型,在圖形界面終端下它的值通常是xterm,終端類型決定了一些程序的輸出顯示方式,比如圖形界面終端可以顯示漢字,而字符終端一般不行。

LANG

語言和locale,決定了字符編碼以及時(shí)間、貨幣等信息的顯示格式。

HOME

當(dāng)前用戶主目錄的路徑,很多程序需要在主目錄下保存配置文件,使得每個(gè)用戶在運(yùn)行該程序時(shí)都有自己的一套配置。

getenv函數(shù)

獲取環(huán)境變量值

    char *getenv(const char *name); 成功:返回環(huán)境變量的值;失敗:NULL (name不存在)

setenv函數(shù)

設(shè)置環(huán)境變量的值

    int setenv(const char *name, const char *value, int overwrite);  成功:0;失敗:-1

參數(shù)overwrite取值: 1:覆蓋原環(huán)境變量

0:不覆蓋。(該參數(shù)常用于設(shè)置新環(huán)境變量,如:ABC = haha-day-night)

unsetenv函數(shù)

刪除環(huán)境變量name的定義

    int unsetenv(const char *name); 成功:0;失敗:-1

注意事項(xiàng):name不存在仍返回0(成功),當(dāng)name命名為"ABC="時(shí)則會(huì)出錯(cuò)。

寫了一段測試代碼來熟悉上面函數(shù)的函數(shù)。

#include <unistd.h>int main(void){    char* val;    const char* name="ABC";    val=getenv(name);    printf("1.%s=%s/n",name,val);    setenv(name,"haha-woshihazida-haha",1);    val=getenv(name);    printf("2.%s=%s/n",name,val);    #if 0    int ret=unsetenv("ABCDEFGH);    printf("1.ret=%d/n",ret);    val=getenv(name);    printf("3.%s=%s",name,val);    #else    int ret=unsetenv("haha-woshihazida-haha");    printf("2.%d/n",ret);    val=getenv(name);    printf("3.%s=%s",name,val);    #endif    printf("/0");    return 0;}
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 浦县| 平阴县| 太湖县| 泾阳县| 和顺县| 开江县| 弥渡县| 霍城县| 繁峙县| 武宁县| 房产| 新民市| 定兴县| 郸城县| 邯郸县| 嘉黎县| 客服| 静海县| 浑源县| 新竹县| 当雄县| 肇东市| 彰化市| 嘉兴市| 江阴市| 双鸭山市| 四子王旗| 绥阳县| 万载县| 福贡县| 彩票| 额济纳旗| 霍林郭勒市| 富宁县| 吴堡县| 安顺市| 奇台县| 崇义县| 隆德县| 汉寿县| 龙里县|