日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

进程环境

發布時間:2025/7/14 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 进程环境 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  

進程環境


  libc中定義的全局變量environ指向環境變量表,environ沒有包含在任何頭文件中,所以在使用時要用extern聲明。例如:
  

#include <stdio.h>
int main(void)
{
extern char **environ;
int i;
for(i=0; environ[i]!=NULL; i++)
printf("%s\n", environ[i]);
return 0;
}

?


  由于父進程在調用fork創建子進程時會把自己的環境變量表也復制給子進程,所以a.out(編譯以上程序所生成的應用程序)打印的環境變量和Shell進程的環境變量是相同的。
  按照慣例,環境變量字符串都是name=value這樣的形式,大多數name由大寫字母加下劃線組成,一般把name的部分叫做環境變量,value的部分則是環境變量的值。環境變量定義了進程的運行環境,一些比較重要的環境變量的含義如下:

PATH
* 可執行文件的搜索路徑。ls命令也是一個程序,執行它不需要提供完整的路徑名/bin/ls,然而通常我們執行當前目錄下的程序a.out卻需要提供完整的路徑名./a.out,這是因為PATH環境變量的值里面包含了ls命令所在的目錄/bin,卻不包含a.out所在的目錄。PATH環境變量的值可以包含多個目錄,用:號隔開。在Shell中用echo命令可以查看這個環境變量的值:
$ echo $PATH

SHELL
* 當前Shell,它的值通常是/bin/bash。

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

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

HOME
* 當前用戶主目錄的路徑,很多程序需要在主目錄下保存配置文件,使得每個用戶在運行該程序時都有自己的一套配置。


  用environ指針可以查看所有環境變量字符串,但是不夠方便,如果給出name要在環境變量表中查找它對應的value,可以用getenv函數。
  

#include <stdlib.h>

char *getenv(const char *name);

getenv的返回值是指向value的指針,若未找到則為NULL。


修改環境變量可以用以下函數

#include <stdlib.h>

int setenv(const char *name, const char *value, int rewrite);
void unsetenv(const char *name);

putenv和setenv函數若成功則返回為0,若出錯則返回非0。


setenv將環境變量name的值設置為value。如果已存在環境變量name,那么:
若rewrite非0,則覆蓋原來的定義;
若rewrite為0,則不覆蓋原來的定義,也不返回錯誤。
unsetenv刪除name的定義。即使name沒有定義也不返回錯誤。

例:修改環境變量

#include <stdlib.h>
#include <stdio.h>
int main(void)
{
printf("PATH=%s\n", getenv("PATH"));
setenv("PATH", "hello", 1);
printf("PATH=%s\n", getenv("PATH"));

return 0;
}


//fork--------------------------------------------------------------------------
#include <stdio.h> #include <unistd.h> #include <stdlib.h>int main(void) {pid_t pid;int n = 0;printf("this is a test\n");/**上面的語句如果沒有\n那么就會在子進程中也打印一句*這個是由于printf的機制造成的,遇到\n就出棧,*若沒有\n那么會在執行下一條語句前出棧,*而下一條語句是fork,此時已經復制主進程的環境,其中包括打印*/pid = fork();//調用fork時,子進程會從下面的語句開始執行if(pid > 0){while(1){n = 10;//兩個n的值是不一樣的,那是因為讀時共享,寫時復制printf("I am parent n = %d , &n = %p\n",n,&n);sleep(2);}}else if(pid == 0){while(1){//兩個n的地址是一樣的,那是因為虛擬地址一樣的原因//但是n的值是不一樣的,那是因為讀時共享,寫時復制printf("I am child n = %d , &n = %p\n",n,&n);sleep(2);}}else{perror("fork");exit(1);}return 0; }

?

轉載于:https://www.cnblogs.com/13224ACMer/p/6384904.html

總結

以上是生活随笔為你收集整理的进程环境的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美三级图片 | 成人毛片网站 | 视频h在线 | 69精品人人| 亚洲经典在线观看 | 在线干 | 2018狠狠干 | 毛片一二三区 | 蜜桃av鲁一鲁一鲁一鲁俄罗斯的 | 97精品在线观看 | 久草视频福利在线 | 欧美熟妇精品黑人巨大一二三区 | 日韩av在线网站 | 日韩精品久久久久久久电影99爱 | 亚洲精品国产无码 | 欧美日韩黄色一区二区 | 中文字幕在线影院 | 一级中文字幕 | av免费播放网站 | 成人免费毛片嘿嘿连载视频 | 特级西西444www大精品视频 | 无码播放一区二区三区 | 中文字字幕在线中文乱码电影 | 亚欧中文字幕 | 一级片在线免费 | 久草青青草 | 欧美打屁股 | 欧美性综合 | 激情五月综合网 | 久久午夜影视 | 亚洲中文一区二区 | 一级美女黄色片 | 黑人性视频| 欧美疯狂做受xxxxx高潮 | 国产91精品在线观看 | 国产野外作爱视频播放 | 成人性爱视频在线观看 | 一级α片免费看刺激高潮视频 | 日本啊啊视频 | 国产毛片毛片毛片毛片毛片毛片 | 2019国产精品| v天堂中文在线 | 偷偷操不一样的久久 | 日本久久片 | 黄色大片毛片 | 日本不卡高清视频 | 黄色一级片国产 | 丝袜一区二区三区 | www.黄色一片 | 西比尔在线观看完整视频高清 | 久久国产精品亚洲 | 久久免费一级片 | 麻豆影视在线播放 | 亚洲涩涩图 | 亚洲区中文字幕 | 色爽爽一区二区三区 | 国精产品99永久一区一区 | 成人毛片在线精品国产 | 无码人妻丰满熟妇区毛片18 | 综合色视频 | 日本毛片在线看 | 日韩欧美视频二区 | 羞羞色院91蜜桃 | 青青草视频污 | 淫久久| xxxⅹ少妇少妇xxxx | 婷婷五综合 | 久久亚洲aⅴ无码精品 | 综合网在线观看 | mm131美女视频 | 美女国产毛片a区内射 | 91久久电影 | 久久综合伊人77777麻豆 | 在线观看亚洲大片短视频 | av大片在线看 | 国产视频1区2区 | 在线观看黄网 | 偷拍一区二区三区 | 精品不卡一区二区三区 | 色亭亭 | 久久久久久久香蕉 | 91福利视频免费观看 | 免费在线观看黄网 | 男插女在线观看 | 日本黄网免费 | 精品视频一区二区三区 | 欧美日韩激情在线 | 神马午夜影院 | 亚洲春色av | 亚洲国产精品久久久 | 日本性网站 | 亚洲综合日韩精品欧美综合区 | 欧美激情精品久久久久久蜜臀 | 欧洲天堂网 | 久久久99精品免费观看 | 女人裸体免费网站 | 四虎最新域名 | 久99 | 牛牛av |