putenv和setenv都是用來改變環境變數的。
#include
intputenv
(const
char
* string)
;
putenv()用來改變或增加環境變數的內容。引數string的格式為name=value,如果該環境變數原先存在,則變數內容會依引數string改變,否則此引數內容會成為新的環境變數.
#include
intsetenv
(const
char
*name,
const
char
* value,
int overwrite)
;
引數 overwrite用來決定是否要改變已存在的環境變數。如果overwrite不為0,則改變環境變數原有內容,原有內容會被改為引數value所指的變數內容。如果overwrite為0,且該環境變數已有內容,則引數value會被忽略。
putenv可以使用程式中已定義,且值形如"name=value"的字串變數作為函式的實參。此時,系統將不再為該環境變數分配記憶體,使用的是程式中定義變數的記憶體,而是將該字串的變數位址儲存在環境中。因此該變數應該定義為全域性變數,以防止該函式推出以後導致環境變數不可用。
char
*var=
"***=male"
;putenv
(var)
;
putenv可以使用形如"name=value"的常量字串作為函式的實參。此時系統需要為該變數分配記憶體,儲存字串"name=value"。
putenv
("***=male"
);
3.setenv必須分配記憶體,儲存字串"name=value";同putenv的第二種用法。
setenv
("***"
,"male",1
);
set和setenv的區別
這裡討論的是tcsh中變數及環境變數時set和setenv命令的區別 set語法set name value setenv語法setenv name value 最大的區別是,set變數只對當前程序有效,不會傳遞給子程序 setenv變數不僅對當前程序有效,而且會傳遞給子程序 而當同時使用set和s...
Linux的set,env和export的區別
set 顯示當前shell的變數,包括當前使用者的變數 env 顯示當前使用者的變數 export 顯示當前匯出成使用者變數的shell變數 每個shell有自己特有的變數 set 顯示的變數,這個和使用者變數是不同的,當前使用者變數和你用什麼shell無關,不管你用什麼shell都在,比 如hom...
多執行緒中使用mktime和setenv函式
在編寫ats外掛程式的過程中,發現使用mktime會偶爾出現段錯誤,經過網上調研,發現mktime等函式不是執行緒安全的,於是編寫下面的 進行測試.注意加鎖和不加鎖區別很大,在mktime中使用多執行緒,加上互斥鎖就沒有問題.gcc g mktime multithread.c o mktime m...