Jak fopen_s może być bezpieczniejszy niż fopen?
Pracuję nad starszym kodem dlaWindows
Platforma. Kiedy kompiluję kod wVS2013
, daje następujące ostrzeżenie:
błąd C4996: „fopen
„: Ta funkcja lub zmienna mogą być niebezpieczne. Rozważ użyciefopen_s
zamiast. Aby wyłączyć dezaktualizację, użyj _CRT_SECURE_NO_WARNINGS. Szczegółowe informacje można znaleźć w pomocy online. ”
I da także samiliarskie ostrzeżenie dlasprintf
. rozumiemsprintf_s
jest bardziej bezpieczny niż sprintf z powodu przepełnienia bufora.
Ale jak może byćfopen_s być bardziej bezpiecznym niżfopen
, nie ma szans na przepełnienie bufora, ponieważfopen
nie akceptuje bufora. Czy ktoś może przedstawić sprawęfopen
jest niebezpieczny ifopen_s
jest bezpieczny?