wsprintf()的安全版本?

时间:2015-10-19 10:47:04

标签: c++ windows msvcrt fortify crt

就像我们拥有_stprintf的安全版本,即hp fortify bufferoverflow的stprintf_s一样 警告,那么我们可以使用什么代替wsprintf()?我试过了wsprintf_s,它没有用。

任何人都可以解释b / w _stprintfwsprintf的区别吗?或者,我们可以使用stprintf_s作为wsprintf的安全版本。

1 个答案:

答案 0 :(得分:2)

选项记录在wsprintf

  

注意请勿使用。请考虑使用以下功能之一:StringCbPrintfStringCbPrintfExStringCchPrintfStringCchPrintfEx。请参阅安全注意事项。

如果您希望使用更接近$url='https://www.youtube.com/watch?v=8Zq3KCBed5Q'; $file_path = drupal_realpath($url); $file->uid = 1; $file->filename = 'dsdss'; $file->uri = $url; $file->filemime = file_get_mimetype($file_path); $file->type = 'video'; $file->status = 1; $file_exists = file_save($file); $node->field_videoyou[$node->language]['0'] = (array) $file_exists; 的安全功能,请使用swprintf_s_snwprintf_s

wsprintf是一个预处理器宏,它将调用映射到ANSI或UNICODE版本。映射表记录在sprintf, _sprintf_l, swprintf, _swprintf_l, __swprintf_l

_stprintf

_stprintf_s的映射表:

TCHAR.H routine | _UNICODE & _MBCS not defined | _MBCS defined | _UNICODE defined
----------------+------------------------------+---------------+-----------------
_stprintf       | sprintf                      | sprintf       | _swprintf