首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >_vscwprintf的安全替代品

_vscwprintf的安全替代品
EN

Stack Overflow用户
提问于 2011-11-16 07:45:22
回答 1查看 813关注 0票数 1

在MSVC中,许多字符串函数提供了原始的、安全的版本和strsafe版本。例如,sprintfsprintf_sStringCchPrintf都是等效的,它们在安全性方面都有所提高(按某种度量标准)。

现在,我有一小段代码可以做到:

代码语言:javascript
复制
int bufsize = _vscwprintf(fmt, args) + 1;
std::vector<wchar_t> buffer(bufsize);

int len = _vsnwprintf_s(&buffer[0], bufsize, bufsize-1, fmt, args);

分配正确大小的缓冲区。

在浏览strsafe函数时,我发现了一个用于_vsnwprintf_s的替代方法,但没有一个用于_vscwprintf的方法。对谷歌的检查似乎没有任何结果。

有没有一种strsafe的方法来编写我所缺少的代码,或者两者的替代函数,或者混合使用原始函数和strsafe函数是可以接受的?(在使用PREfast all rules的/w4上,不会给出关于当前方式的安全警告)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-16 07:59:39

_vscwprintf()只计算安全格式化字符串所需的wchar_t[]数组的大小,它实际上并不向缓冲区写入任何内容。因此,你不需要,也没有安全版本的函数。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8144771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档