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