Windows
平台的旧代码。在使用 VS2013
编译代码时,出现了以下警告信息:
同时,error C4996: '
fopen
': This function or variable may be unsafe. Consider usingfopen_s
instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details."
sprintf
也会出现类似的警告。我知道 sprintf_s
比 sprintf 更安全,因为它可以防止缓冲区溢出。但是,如何理解 fopen_s 比
fopen
更安全呢?因为 fopen
不接受缓冲区,所以不存在缓冲区溢出的情况。请问是否有人能够提供一个案例,证明 fopen
是不安全的,而 fopen_s
是安全的呢?