Linux系統程式設計 環境列表

2021-08-30 02:12:02 字數 1230 閱讀 1664

本節詳細介紹一下很唬人的「環境列表」,在初學計算機知識的時候,我們對環境列表會感到非常陌生,有時候我們在安裝各中

應用軟體時,有時也需要配置一下環境變數,那到底環境變數都存了些什麼東西呢,今天就一一解開這些謎團

什麼是環境變數:

每乙個程序都有與其相關的稱之為環境列表的字串陣列,也可以簡稱為環境,其中每個字串都以名稱=值形式定義,因此環境是「名稱-值」的成對集合,可儲存任何資訊,所以也把列表中的名稱稱為環境變數

在c語言程式中,我們可以使用全域性變數char**environ訪問環境列表。(c執行時啟動**定義了該變數,並以環境列表位置為其賦值)

#include

char* getenv(const char *name)

//name 是環境變數名,該函式返回對應環境變數的值。

有時,修改環境變數很有用處,是因為修改後對該程序後續建立的所有子程序均可見,另乙個可能的原因在於設定某一環境變數,以求對於將要載入程序記憶體的新程式可見,從這個意義上講,環境變數不僅是一種程序間通訊的形式。還是程式間通訊的形式。

#include

int putenv(char*string)

putenv()函式呼叫失敗返回非0值。

string 是乙個指向name=value的形式的字串,注意的是string引數不應為自動變數(即不能是在棧中分配的字元陣列),因為定義此變數的函式返回後,所指區域就被**了。

#include

int setenv(const char*name,const char*value,int overwrite);

overwrite:此值若為0的話,若name所指環境變數存在,則不修改,若此值非0,則總是改變環境變數。

name:環境變數名

value:環境變數值

返回值;成功返回0,失敗返回-1

#include

int unsetenv(const char *name);

引數name為環境列表名,該函式的作用就是從環境中移除name環境變數。

返回值;成功返回0,失敗返回-1

#define _bsd_source

#include

int clearenv(void)

此函式是清空整個環境變數,然後以所選之進行重建,例如為了以安全的方式執行set-user-id程式,就需要這樣做。

Linux 系統程式設計

1 i o操作 2 檔案和目錄管理 3 記憶體管理 1 建立匿名記憶體對映 2 對映 dev zero檔案 類unix 作業系統中,dev zero是乙個特殊的檔案,當你讀它的時候,它會提供無限的空字元 null,ascii nul,0x00 其中的乙個典型用法是用它提供的字元流來覆蓋資訊,另乙個常...

Linux系統程式設計

1.linux程序 守護程序 脫離終端的後台程序 2.linux程序 殭屍程序 3.linux 下程序通訊 其中setsockopt server sockfd,sol socket,so reuseaddr,on,sizeof on 因為每乙個連線都由本地位址和遠端位址的組合唯一確定,所以只要遠端...

Linux系統程式設計 Linux系統呼叫

linux 系統呼叫 庫函式 目錄 系統呼叫概述 系統呼叫的實現 系統呼叫和庫函式的區別 系統呼叫,顧名思義,說的是作業系統提供給使用者程式呼叫的一組 特殊 介面。使用者程式可以通過這組 特殊 介面來獲得作業系統核心提供的服務,比如使用者可以通過檔案系統相關的呼叫請求系統開啟檔案 關閉檔案或讀寫檔案...