windows平台没有提供的两个字符串操作函数。
2020-12-13 16:12
标签:strdup setenv putenv 在看一些开源代码时,经常看到一些字符串操作函数,这些函数在Linux平台下是有的,但在windows平台上,MS没有提供。因此在软件中不得不自己实现.常见的库函数有: windows平台没有提供的两个字符串操作函数。 标签:strdup setenv putenv 原文地址:http://blog.csdn.net/smartfox80/article/details/40888423//获得当前字符的一个拷贝,由外部释放内存。
char *strdup(const char *src)
{
int len;
char *dst;
len = strlen(src) + 1;
if ((dst = (char *) malloc(len)) == NULL)
return (NULL);
strcpy(dst, src);
return (dst);
}
//设置环境变量
int setenv(const char *name, const char *value, int overwrite)
{
char *cp;
int ret;
if (overwrite == 0) {
if (getenv(name))
return 0;
}
cp = (char *) malloc(strlen(name) + strlen(value) + 2);
if (cp == NULL)
return -1;
sprintf(cp, "%s=%s", name, value);
ret = putenv(cp);
#ifdef WIN32
free(cp);
#endif
return ret;
}