如何证明fread调用ReadFile,而fopen调用CreateFile?

7
我知道这听起来有点愚蠢,但是否有一种方法可以证明在Windows上:
  • fopen函数调用winapi函数CreateFile(或CreateFileEx)
  • fread函数调用winapi函数ReadFile(或ReadFileEx)
如果有更普遍的方法来确定一些C库函数如何调用winapi函数,我也很乐意作为答案。
我们正在进行辩论,我对一些证据很感兴趣。我主要关心Visual C。

5
1:阅读CRT源代码,2:使用调试器,3:学习Windows API并得出只有一种打开文件的方法。这些是必须做的事情,才能赢得这场愚蠢的争论。 - Hans Passant
很难想象fread还有其他实现方式。希望微软没有使用本地API! - David Heffernan
他们将使用kernel32导出中的本地API。 - Bukes
@Bukes 当然他们会在那里!但最好不要在 C 运行时中使用本地 API。 - David Heffernan
2个回答

5

Visual C附带C运行时库的源代码。这样可以解决问题吗?


4

使用调试器突破应用程序,并在您针对的函数(它们被实现在kernel32.dll中)上设置断点。尝试跳过fopen调用。如果断点被触发,则fopen调用了CreateFile


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接