在Windows上用c++打开文件的不同方法

Different ways of Opening a file in C++ on Windows?

本文关键字:方法 文件 Windows 上用 c++      更新时间:2023-10-16

当使用fopenfstream时,必须指定二进制模式,以防止字符转换。在UNIX之类的系统上通常不需要这样做,但在Windows上则需要这样做。

这让我怀疑这是否仍然是在这个操作系统上访问文件系统数据的"自然"方式。UNIX具有"一切都是文件"的体系结构,那么是否存在一些相当于较低级设备的窗口来访问数据呢?毕竟,如果正在进行字符转换,那么检查每个字符以确定是否需要转换所涉及的开销。希望在二进制模式下打开一个文件会简单地禁用任何这样的处理,但我有我的怀疑。

有人能解释一下吗?

你可以直接使用windows文件句柄。创建文件、读文件和写文件

这与Unix的操作方式非常相似。使用这些函数可以做很多事情。不是插座,但这是你能得到的最接近的!

C运行时库做C运行时库做的事情。

Windows实际上有大多数的东西作为一个文件(或者我应该说对象)一个文件名在Windows实际上是一个对象在全局命名空间??。如果你在MSDN上查找CreateFile的文档,会有更多的内容,特别是如果你深入研究Windows内核文档。

如果你对Windows上的对象感兴趣,你也可以从technet下载并运行WinObj

根据你所从事的项目类型,我会在IO周围放置一个抽象层,以便能够充分利用Windows中而不是C运行时库中的内容。我很少为不同的平台编写代码,而不是通过每个平台的本机API(或通过一些中间抽象)。

是的,有win32特有的函数。纯粹主义者会说它使你的代码不可移植。确实如此!但是谁在乎呢,你在写一个Windows程序。

OpenFile, CreateFile等