snprintf() and _snprintf() are not equivalent.
Given the following program:
```
#include <stdio.h>
int main(){
char str[] = "0123456789";
_snprintf(str, 5, "%s", "-----");
puts(str);
}
```
A standard-conforming program should write a null terminator at str[4],
truncating the output to "----".
The Microsoft _snprintf() follows the semantics of strncpy(). That is, it does
not operate null terminated strings, but 'string fields'.
It overwrites the first five characters without appending a null terminator
(which would cause an overflow apparently), effectively outputting '-----56789'.
------------------
Best regards,
lh_mouse
2016-04-29
-------------------------------------------------------------
发件人:Hugo Beauzée-Luyssen <[email protected]>
发送日期:2016-04-29 17:09
收件人:mingw-w64-public
抄送:
主题:[Mingw-w64-public] [PATCH] crt: Add missing snprintf aliases
---
mingw-w64-crt/lib32/msvcr120_app.def.in | 1 +
mingw-w64-crt/lib64/msvcr120_app.def.in | 1 +
2 files changed, 2 insertions(+)
diff --git a/mingw-w64-crt/lib32/msvcr120_app.def.in
b/mingw-w64-crt/lib32/msvcr120_app.def.in
index 579edb3..bb1f214 100644
--- a/mingw-w64-crt/lib32/msvcr120_app.def.in
+++ b/mingw-w64-crt/lib32/msvcr120_app.def.in
@@ -1042,6 +1042,7 @@ _vscwprintf_p
_vscwprintf_p_l
_vsnprintf
vsnprintf == _vsnprintf
+snprintf == _snprintf
_vsnprintf_c
_vsnprintf_c_l
_vsnprintf_l
diff --git a/mingw-w64-crt/lib64/msvcr120_app.def.in
b/mingw-w64-crt/lib64/msvcr120_app.def.in
index 8c60b42..29aafba 100644
--- a/mingw-w64-crt/lib64/msvcr120_app.def.in
+++ b/mingw-w64-crt/lib64/msvcr120_app.def.in
@@ -984,6 +984,7 @@ _vscwprintf_p
_vscwprintf_p_l
_vsnprintf
vsnprintf == _vsnprintf
+snprintf == _snprintf
_vsnprintf_c
_vsnprintf_c_l
_vsnprintf_l
--
2.8.1
------------------------------------------------------------------------------
Find and fix application performance issues faster with Applications Manager
Applications Manager provides deep performance insights into multiple tiers of
your business applications. It resolves application problems quickly and
reduces your MTTR. Get your free trial!
https://ad.doubleclick.net/ddm/clk/302982198;130105516;z
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
------------------------------------------------------------------------------
Find and fix application performance issues faster with Applications Manager
Applications Manager provides deep performance insights into multiple tiers of
your business applications. It resolves application problems quickly and
reduces your MTTR. Get your free trial!
https://ad.doubleclick.net/ddm/clk/302982198;130105516;z
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public