Windows API的CreateFile()中的OPEN_ALWAYS和CREATE_ALWAYS之间的差异

转自:http://www.voidcn.com/article/p-uzrihrua-bte.html

任何人都可以解释Windows API的 CreateFile()功能的创建配置OPEN_ALWAYS和CREATE_ALWAYS之间的区别?

对我来说,似乎他们只是简单地“创建文件,如果它不存在”。

如果文件已经存在,CREATE_ALWAYS也会截断内容。另一方面,OPEN_ALWAYS不会破坏已经存在的文件。

以下是表格形式中不同值的工作原理:

|                    When the file...
This argument:           |             Exists            Does not exist
-------------------------+------------------------------------------------------
CREATE_ALWAYS            |            Truncates             Creates
CREATE_NEW         +-----------+        Fails               Creates
OPEN_ALWAYS     ===| does this |===>    Opens               Creates
OPEN_EXISTING      +-----------+        Opens                Fails
TRUNCATE_EXISTING        |            Truncates              Fails

原文地址:https://www.cnblogs.com/csstudy/p/11656257.html

时间: 2024-11-06 09:56:05

Windows API的CreateFile()中的OPEN_ALWAYS和CREATE_ALWAYS之间的差异的相关文章

关于Windows® API Code Pack for Microsoft® .NET Framework

相比之前的操作系统,Window 7(or Vista)提供了很多新特性,我们在应用实现中可以利用这些特性来提升用户体验. 这些特性主要包括以下几个方面: Shell Enhancements DirectX Technologies Application Restart and Recovery Extended Linguistics Services (ELS) Sensor Platform Aero Glass 这些原生Windows特性在托管应用程序中需要基于COM Interop

项目笔记---Windows Service调用Windows API问题

概要 此文来自于最近一个“诡异”的Windows API调用发现Windows Service在调用某些Windows API的过程中失效,在经过漫长的Baidu,之后终于在StackOverFlow上找到了答案,今天希望把这个问题记录下来,方便大家Baidu  -.- 需求是什么? 注:PDA一端通过Socket传输一条一维码(如1231223123123123),服务端接收到消息后,在当前(即当前有焦点的任何窗口)模拟键盘敲击一维码. 最开始服务端是用WinForm实现的,测试成功,所以就想

Windows API中的坑

本文主页链接:Windows API中的坑 ExpandEnvironmentStrings 风险: 进程会继承其父进程的环境变量,在展开如%APPDATA%等目录时,有可能父进程对此环境变量进行过修改,那么可能你获取的就不是你想要的当前SESSION的%APPDATA%了. 建议: 使用SHGetFolderPath系列函数来做这件事. GetModuleFileName 风险: 在DLL中调用时,若传入的instance参数为NULL,那获取的将是加载DLL的进程的EXE的路径,若需要获取D

在VBA中使用Windows API

VBA是一种强大的编程语言,可用于自定义Microsoft Office解决方案.通过使用VBA处理一个或多个Office应用程序对象模型,可以容易地修改Office应用程序的功能或者能够使两个或多个Office应用程序协同工作以完成单个应用程序无法完成的任务.然而,使用VBA仅能控制操作系统的一小部分.Windows API提供了控制操作系统绝大多数方面的功能.下面,介绍在VBA中使用Windows API的一些知识. 理解APIs API只是一组函数,可用于处理组件.应用程序或操作系统.通常

windows API中CreateWindow()函数详解

CreateWindow函数详解 在注册完窗口类后就需要进行窗口的创建,用到的函数理所当然就是CreateWindow(), 而这个函数是基于窗口类的,所以还需要指定几个参数来制定特定的窗口.而且像一些不带边框的窗口是怎么创建的也是具有相当的技巧的,就是创建的是不带标题和边框的窗口,然后自己在客户区绘制程序的内容,能够制作个性化的应用程序. API解释 该函数创建一个重叠式窗口.弹出式窗口或子窗口.它指定窗口类,窗口标题,窗口风格,以及窗口的初始位置及大小(可选的).函数也指该窗口的父窗口或所属

Windows API中的数据结构

值得说明的是,win32开发是C语言编程,因此,搞明白数据类型还是非常重要的.Windows API因为历史原因或者为了方便在windows.h中将一些数据类型用typedef或者define宏重新进行定义. UINT表示C语言中的无符号整型unsigned int PSTR表示字符串指针char * WPARAM在16位时期的Windows中表示unsigned short int,而现在都是UINT LPARAM表示long WndProc函数的返回类型LRESULT实际上就是long 入口

Windows API中几个函数的总结

[DllImport("User32.dll", EntryPoint = "FindWindow")] public static extern IntPtr FindWindow(String className, String captionName); [DllImport("User32.dll", EntryPoint = "FindWindowEx")] public static extern IntPtr F

[windows菜鸟]C#中调用Windows API参考工具

很多windows API都不知道签名,可以从下面几种方式进行查询 1.微软出的工具 P/Invoke Interop Assistant version 1.0 2.网站 pinvoke.net 3.ReactOS官网源码 reactos.org 原文地址:https://www.cnblogs.com/code1992/p/11698316.html

Delphi Windows API判断文件共享锁定状态

一.概述 锁是操作系统为实现数据共享而提供的一种安全机制,它使得不同的应用程序,不同的计算机之间可以安全有效地共享和交换数据.要保证安全有效地操作共享数据,必须在相应的操作前判断锁的类型,然后才能确定数据是否可读或可写,从而为开发出健壮的程序提供切实依据.   同样,在Windows中,文件可以共享模式打开,它也涉及到锁的操作问题.根据Windows中文件共享时加锁范围的大小,锁可分为全局锁和局部锁:全局锁以锁定文件全部内容为特征,而局部锁以锁定文件的局部内容为特征,且文件的锁定区域不可重复.根