環境字串一般表示如下:
[cpp]view plain
copy
name = value;
//環境變數名,環境變數值
以下根據對環境變數不同的操作得到不同的結果,包括獲取環境變數當前值,新增環境變數,修改環境變數和刪除環境變數;相對應的函式分別為getenv、putenv、setenv和unsetenv函式,具體實現功能和返回值如下:
[cpp]view plain
copy
/** 函式功能:獲取環境變數值;
* 返回值:指向與name關聯的value的指標,若未找到則返回null;
* 函式原型:
*/#include
char
*getenv(
const
char
*name);
/** 函式功能:增加環境變數;
* 返回值:若成功則返回0,若出錯則返回非0;
* 函式原型:
*/#include
intputenv(
char
*str);
/* 說明:
* 把name = value的字串存放在環境表中,如果name已存在,則先刪除其原來的定義;
*//*
* 函式功能:修改環境變數;
* 返回值:若成功則返回0,若出錯則返回-1;
* 函式原型:
*/#include
intsetenv(
const
char
*name,
const
char
*value,
intrewrite);
intunsetenv(
const
char
*name);
/* 說明:
* setenv將name設定為value值,若name已經存在,當rewrite為非0時,先刪除其現有定義;
* 若rewrite為0,則不刪除其現有定義,即不修改name的字元變數;
* * unsetenv刪除name的定義;
* */
測試程式:
[cpp]view plain
copy
#include
#include
#include "apue.h"
intmain(
void
)
程式輸出:
[cpp]view plain
copy
getnev: user = nifengweijifen.
after putenv: linux= linux3.8.
after setenv: rewrite= 0 and linux= linux3.8.
after setenv: rewrite != 0 and linux= goodbye linux.
after unsetenv: linux= (null).
《unix高階環境程式設計》程序環境 程序終止
當核心執行c程式時 使用乙個exec函式執行 在呼叫mian函式前先呼叫乙個特殊的啟動例程。可執行程式檔案將此啟動例程指定為程式的起始位址。下面是c程式啟動和終止的流程,由圖中可以知道,程序的終止根據不同的函式呼叫是不一樣的,其中 exit和 exit函式是終止程序直接進入核心,exit函式則先執行...
unix環境高階程式設計 守護程序
守護程序 daemon 是生存期長的一種程序,常常在系統引導裝入時啟動,僅在系統關閉時終止,因為它們沒有控制終端,unix有很多守護程序,它們執行日常事務活動。守護程序的特徵 執行指令 ps zxj a顯示其他使用者擁有的程序狀態,x顯示沒有終端控制的程序狀態,j顯示與作業有關的資訊 會話id 程序...
UNIX環境高階程式設計 守護程序
守護程序也稱精靈程序,是生存期較長的一種程序。它們通常在系統自舉時啟動,僅在系統關閉時才終止。因為它們沒有控制終端,所以它們都是在後台執行的。各標題意義 父程序id,程序id,程序組id,會話id,終端名稱,終端程序組id,使用者id 系統程序依賴於作業系統實現。父程序id為0的各程序通常是核心程序...