fopen_s很容易重构为CreateFile

时间:2012-12-14 20:33:03

标签: c file-io fopen

程序在Windows机器上创建一个文件以记录其进度。在程序结束时,文件将关闭并保留在系统上。具有网络访问权限的用户希望远程打开文件以查看最近记录的条目。

使用fopen_s打开文件,文档中没有提及共享模式。使用Ansi-C90是必需的。

使用过的电话如下:

e += fopen_s(&(logger->logData.fileHandle), fp.Path, "a");

CreateFile对我来说是一个选择吗?我读到它不是Ansi-C90 在不破坏任何其他代码的情况下,fopen_s是否很容易重构为CreateFile? 对于什么样的可能的重构问题,我应该编写单元测试? 还有其他方法可以在我缺少的sharedmode中打开文件吗?

1 个答案:

答案 0 :(得分:1)

“由fopen_s和_wfopen_s打开的文件不可共享。如果要求文件可共享,请使用_fsopen,_wfsopen和相应的共享模式常量(例如,_SH_DENYNO用于读/写共享)。”

(根据约翰内斯的要求,评论变成了答案)