Wie kann fopen_s sicherer sein als fopen?

Arbeite ich auf legacy code für Windows Plattform. Wenn ich den code kompilieren in VS2013gibt es folgende Warnung:

error C4996: 'fopen': Diese Funktion oder variable möglicherweise nicht sicher ist. Erwägen Sie die Verwendung fopen_s statt. Zum deaktivieren von veralteten, verwenden Sie _CRT_SECURE_NO_WARNINGS. Siehe online-Hilfe für details."

Und es wird auch samiliar Warnung für sprintf. Ich verstehe sprintf_s ist sicherer als sprintf, weil der buffer-overflow.

Aber wie kann fopen_s sicherer als fopen gibt es keine Möglichkeit von buffer-overflow, weil fopen nicht akzeptieren, ein Puffer. Kann jemand geben einen Fall fopen ist unsicher, und fopen_s sicher ist?

InformationsquelleAutor der Frage ZijingWu | 2013-10-16

Schreibe einen Kommentar