功能类似于putenv()

时间:2011-11-12 18:54:06

标签: c

我需要一些帮助来创建一个类似于C标准库的putenv()函数的函数,而不是:

int putenv(char *string);

原型为:

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

其中varname[]varvalue[]由用户输入,且类型为char。

2 个答案:

答案 0 :(得分:1)

你应该测量varnamevarvalue的长度(例如strlen),动态分配足够长的字符串以保存它们,等号和空终止符,构建varname=varvalue字符串(如果您是受虐狂类型,可以使用snprintfstrncat,或使用两个for循环执行此操作,将新字符串传递给{{1并解除分配您构建的字符串。

顺便说一下,我会将putenvvarname的类型更改为varvalue,因为在您的函数中,您实际上并没有修改它们。

答案 1 :(得分:0)

这不是很难:

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

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

    putenv( argument );
};