Как fopen_s может быть более безопасным, чем fopen?
Я работаю над устаревшим кодом дляWindows
Платформа. Когда я компилирую код вVS2013
Дайте следующее предупреждение:
ошибка C4996: 'fopen
': Эта функция или переменная может быть небезопасной. Рассмотреть возможность использованияfopen_s
вместо. Чтобы отключить устаревание, используйте _CRT_SECURE_NO_WARNINGS. Смотрите справку для деталей."
И это также даст знакомое предупреждение дляsprintf
, Я понимаюsprintf_s
более безопасен, чем sprintf из-за переполнения буфера.
Но как можноfopen_s быть более безопасным, чемfopen
нет вероятности переполнения буфера, потому чтоfopen
не принимает буфер Может ли кто-нибудь представить случайfopen
небезопасно, иfopen_s
безопасно?