Wie kann fopen_s sicherer sein als fopen?

Ich arbeite an Legacy-Code fürWindows Plattform. Wenn ich den Code kompiliereVS2013Es gibt folgende Warnung:

Fehler C4996: 'fopen': Diese Funktion oder Variable ist möglicherweise unsicher. Erwägen Sie die Verwendungfopen_s stattdessen. Verwenden Sie _CRT_SECURE_NO_WARNINGS, um die Veralterung zu deaktivieren. Weitere Informationen finden Sie in der Online-Hilfe. "

Und es wird auch eine Warnung für Samiliar gebensprintf. ich verstehesprintf_s ist aufgrund des Pufferüberlaufs sicherer als sprintf.

Aber wie kann es sein?fopen_s sicherer sein alsfopenEs besteht keine Möglichkeit eines Pufferüberlaufs, dafopen akzeptiert keinen Puffer. Kann mir jemand einen Fall liefernfopen ist unsicher undfopen_s ist sicher?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage