[英]curl_getenv() reasons of writing this function
我正在阅读libcurl,我遇到了一个不清楚的事情。 有一个函数curl_getenv()。 它写的是为了成为stdlib.h中函数genenv()的包装而完成的想法( 完整描述了这个函数 )
但我无法得到,为了什么?
在支持C语言的所有平台上/所有平台上都支持C语言的标准功能。
那么,编写具有相同参数但不简化工作的包装器的原因是什么? 这不是没用的吗?
curl_getenv
函数与来自c lib的getenv
,你可以从代码中看到它,我认为很清楚 - ):
static
char *GetEnv(const char *variable)
{
#ifdef _WIN32_WCE
return NULL;
#else
#ifdef WIN32
char env[MAX_PATH]; /* MAX_PATH is from windef.h */
char *temp = getenv(variable);
env[0] = '\0';
if(temp != NULL)
ExpandEnvironmentStringsA(temp, env, sizeof(env));
return (env[0] != '\0')?strdup(env):NULL;
#else
char *env = getenv(variable);
#ifdef __VMS
if(env && strcmp("HOME",variable) == 0)
env = decc_translate_vms(env);
#endif
return (env && env[0])?strdup(env):NULL;
#endif
#endif
}
char *curl_getenv(const char *v)
{
return GetEnv(v);
}
如果每个平台的环境变量名称或它们所包含的字符串略有不同,该怎么办? 然后使用包装器可以隐藏差异。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.