在Windows上用c++打开文件的不同方法
Different ways of Opening a file in C++ on Windows?
当使用fopen
或fstream
时,必须指定二进制模式,以防止字符转换。在UNIX之类的系统上通常不需要这样做,但在Windows上则需要这样做。
这让我怀疑这是否仍然是在这个操作系统上访问文件系统数据的"自然"方式。UNIX具有"一切都是文件"的体系结构,那么是否存在一些相当于较低级设备的窗口来访问数据呢?毕竟,如果正在进行字符转换,那么检查每个字符以确定是否需要转换所涉及的开销。希望在二进制模式下打开一个文件会简单地禁用任何这样的处理,但我有我的怀疑。
有人能解释一下吗?
你可以直接使用windows文件句柄。创建文件、读文件和写文件
这与Unix的操作方式非常相似。使用这些函数可以做很多事情。不是插座,但这是你能得到的最接近的!
C运行时库做C运行时库做的事情。
Windows实际上有大多数的东西作为一个文件(或者我应该说对象)一个文件名在Windows实际上是一个对象在全局命名空间??
。如果你在MSDN上查找CreateFile
的文档,会有更多的内容,特别是如果你深入研究Windows内核文档。
如果你对Windows上的对象感兴趣,你也可以从technet下载并运行WinObj
。
根据你所从事的项目类型,我会在IO周围放置一个抽象层,以便能够充分利用Windows中而不是C运行时库中的内容。我很少为不同的平台编写代码,而不是通过每个平台的本机API(或通过一些中间抽象)。
是的,有win32特有的函数。纯粹主义者会说它使你的代码不可移植。确实如此!但是谁在乎呢,你在写一个Windows程序。
OpenFile, CreateFile等
相关文章:
- 如何使用curlpp通过POST方法上传文件和json数据
- 一种在C++中读取TXT配置文件的简单方法
- 在 cpp 文件中隐藏采用模板参数引用的方法
- 在C++中包含原型文件的正确方法是什么?
- 通过比较C++中的行在 txt 文件中搜索的最简单方法是什么?
- 不带预处理器的调用方法/文件的文件名/行号
- 引用文件的适当方法是什么?
- 在文件中写入而不是在 c++ 中使用 "<<" 的替代方法?
- 查找定义我的 C/C++ 函数/宏的文件比'grep'更简单的方法
- 读取大文件(>2GB)(文本文件包含以太网数据)并通过不同参数随机访问数据的最佳方法是什么?
- 在C++中创建文件夹选取器对话框的最简单方法是什么?
- C++:std::ofstream 方法 open() 在第二次迭代时擦除打开的 ifstream 文件
- 如何使用 C/C++ 和 system() 系统调用以外的其他方法在 Linux 中获取文件功能?
- 创建进行生产构建并创建调试信息的C++生成文件的最佳方法?
- 是否有正确的方法对生成文件中的对象文件使用模板命令?(C++)
- 将位字符串转储到二进制文件的最佳方法是什么
- 在目录中查找所有.cpp.h文件(include,src等)的传统方法
- 通过boost asio iostream下载大文件的最快方法是什么?
- LNK2019 在文件中调用静态成员的方法时出错.cpp
- 在 *.cpp 文件中实现的 c++ 函数/方法永远不会内联扩展吗?