这些函数因为不是十分安全的,对于内存不够的时候处理并不完善,所以建议使用 更为安全的函数版本
比如_tgetenv_s();_tcscat_s(),_tsplitpath_s()等
_tgetenv_s()函数声明:
- errno_t getenv_s(
- size_t *pReturnValue,
- char* buffer,
- size_t numberOfElements,
- const char *varname
- );
- errno_t _wgetenv_s(
- size_t *pReturnValue,
- wchar_t *buffer,
- size_t numberOfElements,
- const wchar_t *varname
- );
- template <size_t size>
- errno_t getenv_s(
- size_t *pReturnValue,
- char (&buffer)[size],
- const char *varname
- ); // C++ only
- template <size_t size>
- errno_t _wgetenv_s(
- size_t *pReturnValue,
- wchar_t (&buffer)[size],
- const wchar_t *varname
- ); // C++ only
_tgetenv_s()用法如下:
- TCHAR *querystringvar;
- size_t requiredsize;
- _tgetenv_s(&requiredsize,NULL,0,_T("QUERY_STRING"));
- querystringvar = (TCHAR *)malloc(requiredsize * sizeof(TCHAR));
- if(!querystringvar)
- {
- fprintf(stdout, "Content-Type:text/html;charset=gbk;");
- fprintf(stdout, "/n/n");
- printf("获取QUERY_STRING时内存分配失败!/n");
- exit(1);