jjzjj

CreateFile

全部标签

python - 如果文件不存在,则创建一个文件

我正在尝试打开一个文件,如果该文件不存在,我需要创建它并打开它以进行写入。到目前为止我有这个:#openfileforreadingfn=input("Enterfiletoopen:")fh=open(fn,'r')#iffiledoesnotexist,createitif(!fh)fh=open(fh,"w")错误消息显示if(!fh)行存在问题。我可以像在Perl中一样使用exist吗? 最佳答案 如果你不需要原子性,你可以使用os模块:importosifnotos.path.exists('/tmp/test'):os.

python - 如果文件不存在,则创建一个文件

我正在尝试打开一个文件,如果该文件不存在,我需要创建它并打开它以进行写入。到目前为止我有这个:#openfileforreadingfn=input("Enterfiletoopen:")fh=open(fn,'r')#iffiledoesnotexist,createitif(!fh)fh=open(fh,"w")错误消息显示if(!fh)行存在问题。我可以像在Perl中一样使用exist吗? 最佳答案 如果你不需要原子性,你可以使用os模块:importosifnotos.path.exists('/tmp/test'):os.

windows - 使用 CreateFile 打开设备名称

我正在开发一个简单的设备驱动程序,我想使用IRP从用户模式与驱动程序进行通信。我无法打开设备驱动程序。使用DeviceTree我能够看到设备名称,例如\Device\MyDevice。但是当我尝试这样打开它时:hand:=CreateFile('\Device\MyDevice',GENERIC_WRITE,0,nil,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);我总是得到INVALID_HANDLE_VALUE并且GetLastError是(系统找不到指定的路径)我做错了什么?我知道驱动程序有效,因为我可以看到它在DebugView中运行和打印内容。

c++ - 命名管道 CreateFile() 返回 INVALID_HANDLE_VALUE,GetLastError() 返回 ERROR_PIPE_BUSY

我已经编写了一个类来处理命名管道连接,如果我创建了一个实例,关闭它,然后尝试创建另一个实例,调用CreateFile()返回INVALID_HANDLE_VALUE,并且GetLastError()返回ERROR_PIPE_BUSY。这里发生了什么?我该怎么做才能确保对Connect()的调用成功?PipeAsyncA,B;A.Connect("\\\\.\\pipe\\test",5000);A.Close();cout这是我对Connect()和Close()的实现BOOLPipeAsync::Connect(LPCSTRpszPipeName,DWORDdwTimeout){th

c++ - 如何使用 CreateFile API 打开分区?

我想从驱动器C:/获取句柄。我可以通过以下方式从磁盘获取句柄:HANDLEhd=CreateFile("\\\\.\\PhysicalDrive0",GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE,0,OPEN_EXISTING,0,NULL);如何访问磁盘分区?使用此代码时:HANDLEhd=CreateFile("\\.\C",GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE,0,OPEN_EXISTING,0,NULL);并

c++ - 提示输入 CreateFile 的凭据

我想设计一个函数来检查文件中的某些文本。它需要一个文件路径,这个路径可以是UNC路径,例如\path\to\file\share。它也将使用当前用户的凭据。我想要做的是能够提示用户输入要使用的新凭据;在伪代码中hCreds=NULL;if(!fAutoLogon){hCreds=PromptForCredentials();}hFile=CreateFile(pszFile,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL,hCreds); 最佳答案

c++ - Windows CreateFile 可能的错误代码

我正在尝试将Windows、Linux和Mac文件IO调用抽象为宏(以避免C运行时,所以没有fopen、fclose,ETC...)。我实际上已经做了很多工作,但遇到了绊脚石。我试图将每个平台可能抛出的所有可能错误归结为常见错误的子集:未找到、存在、无效访问等。Linux显然文档很好,Mac甚至有最常见的文档,但Windows没有指定其native文件I/O函数抛出哪些错误。我们显然需要使用GetLastError(),但我找不到可能的值的引用。这个怎么样?我正在编写Windows应用程序并使用CreatFile()API。我想尽可能优雅地处理任何错误,并可能从所述错误中恢复,而不是告

windows - 谁在 CreateFile 上执行 dwShareMode?操作系统还是驱动程序?

我有一个与某些硬件交互的Windows应用程序。使用CreateFile打开硬件句柄,我们使用DeviceIoControl控制硬件。我正在尝试更新使用此硬件的应用程序以独占模式打开硬件,以便其他程序无法同时访问硬件(硬件具有我无法拥有的可变状态从我下面变了)。为此,我将0作为dwShareMode参数传递给CreateFile。进行此更改后,我仍然能够运行我的应用程序的两个独立实例。两个进程中对CreateFile的两次调用均成功。两者都不会返回INVALID_HANDLE_VALUE。我相信发生了几种情况之一,我请求帮助缩小问题范围。我严重误解了dwShareMode参数dwSha

c++ - 如何设置 CreateFile() 打开 COM 端口时将使用的 DTR/RTS 状态

我编写/支持一个名为uCon(http://www.umonfw.com/ucon)的终端仿真器。它全部基于“good-ole”Win32,并且完全在“C”中。我最近被要求支持将uCon连接到COM端口并为RS232流量控制之外的目的设置DTR/RTS的能力。我知道我可以在使用EscapeCommFunction()和/或SetCommState()调用CreateFile()之后执行此操作;但是,这些函数只能在CreateFile()返回已打开端口的句柄后调用。不幸的是,当CreateFile()打开端口时,它将DTR/RTS设置为其默认状态,这可能(或可能不)与我希望保持DTR的状

c# - Kernel32.dll 中的 CreateFile 不允许我打开物理磁盘

我正在尝试使用以下代码从PhysicalDrive0获取MBR:privatestaticbyte[]ReadMbr(stringlpFileName){byte[]mbr=newbyte[512];using(SafeFileHandledrive=CreateFile(lpFileName:lpFileName,dwDesiredAccess:(uint)EFileAccess.GenericRead,//DONOTMODIFYTHEMBR!!!dwShareMode:(uint)EFileShare.Write|(uint)EFileShare.Read|(uint)EFileS