Seb*_*ian 3 c fopen tr24731 visual-studio c11
什么是不安全的,哪个fopen更安全fopen_s?
如何以安全的方式使用fopen(如果可能的话)?
(我不想知道如何抑制警告 - 有足够的stackoverflow文章来回答这个问题)
编辑:问题被关闭为"基于意见"(即使只有一个答案,我没有看到太多的意见).我会尝试改写一下:如果有人能够展示微软(不赞成使用该功能)的文档如何/在哪里找到它,这将解释为什么它被弃用会更好.
Microsoft CRT实现了C11附录K中描述的安全库增强.这是一种规范性但非强制性的.fopen_s()在K.3.5.2.1节中描述.CERT研究所的FIO06-C规则也涵盖了该规定.
问题是fopen()可以追溯到程序员仍然可以假设他们的程序是唯一一个操纵文件的简单时间.一个从未真实存在的假设.它没有办法描述其他进程对文件的访问是如何受限的,CRT实现传统上打开文件而不拒绝任何访问.已经使用非标准替代方案来解决这个问题_fsopen().
如果打开文件进行写入,则会产生后果,另一个进程也可以打开文件进行写入,文件内容将无可救药地损坏.如果在另一个进程正在写入文件时打开文件进行读取,则文件内容的视图是不可预测的.
fopen_s()通过在文件打开以进行写入时拒绝所有访问来解决这些问题,并且在打开文件进行读取时仅允许读取访问.
| 归档时间: |
|
| 查看次数: |
303 次 |
| 最近记录: |