2011-11-12 54 views
2

我需要建立類似於C標準庫的putenv()功能的功能有一定的幫助,但不是:功能傳給putenv()

int putenv(char *string); 

它的原型爲:

void env_add(char varname[], char varvalue[]); 

其中varname[]varvalue[]由用戶輸入並且是char類型。

回答

1

你應該測量的varnamevarvalue(如與strlen)的長度,分配動態字符串足夠長的時間來保存它們,等號和空結束,建varname=varvalue字符串(如果你是受虐狂類型的話,你可以用snprintf或或兩個for循環來做到這一點),將新字符串傳遞給putenv並釋放你構建的字符串。

順便說一下,我會將varnamevarvalue的類型更改爲const char *,因爲在您的函數中您並未實際修改它們。

0

這是不是很辛苦:

void env_add(char varname[], char varvalue[]) 
{ 
    char* argument = ...; 

    /* ...do something to create an argument out of name and value... */ 

    putenv(argument); 
};