|
首先说个bug文件_打开() 在打开大于2G大小的文件的时候 如果文件路径较长 会直接返回-1 (文件大于2G和文件路径较长必须同时满足)以下为测试截图:
经过反复测试 发现是 文件_打开() 命令里面调用 CreateFileA 这个api时 dwShareMode参数填0导致的
因为原本的 文件_打开() 本身就没有什么可以填的参数 所以我就不去动那个代码给他加参数了。
直接新增个 文件_打开文件() 顺便来个W版的 文件_打开文件W()
参数和核心支持库的 打开文件() 保持一致 同时新增 文件_关闭文件() 与之对应
|
文件_打开文件W | 整数型 | | |
欲打开的文件名称 | 字节集 | | | | 打开方式 | 整数型 | | | | 共享方式 | 整数型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 局_dwDesiredAccess | 整数型 | | | 局_dwCreationDisposition | 整数型 | | | 局_dwShareMode | 整数型 | | | 局_hFile | 整数型 | | | 如果真 (是否为空 (打开方式 )) 打开方式 = #读写 如果真 (是否为空 (共享方式 )) 共享方式 = #无限制 判断 (打开方式 = #读入 ) 局_dwDesiredAccess = #GENERIC_READ 局_dwCreationDisposition = 3 判断 (打开方式 = #写出 ) 局_dwDesiredAccess = #GENERIC_WRITE 局_dwCreationDisposition = 3 判断 (打开方式 = #读写 ) 局_dwDesiredAccess = 位或 ( #GENERIC_READ, #GENERIC_WRITE )局_dwCreationDisposition = 3 判断 (打开方式 = #重写 ) 局_dwDesiredAccess = #GENERIC_WRITE 局_dwCreationDisposition = 2 判断 (打开方式 = #改写 ) 局_dwDesiredAccess = #GENERIC_WRITE 局_dwCreationDisposition = 1 判断 (打开方式 = #改读 ) 局_dwDesiredAccess = #GENERIC_READ 局_dwCreationDisposition = 1 判断 (共享方式 = #无限制 )局_dwShareMode = 位或 (1, 2, 4 ) 判断 (共享方式 = #禁止读 )局_dwShareMode = 位或 (2, 4 ) 判断 (共享方式 = #禁止写 )局_dwShareMode = 1 判断 (共享方式 = #禁止读写 )局_dwShareMode = 0 局_hFile = CreateFileW (欲打开的文件名称, 局_dwDesiredAccess, 局_dwShareMode, 0, 局_dwCreationDisposition, 128, 0) 如果真 (局_hFile = -1 )局_hFile = 0 返回 (局_hFile)|
文件_打开文件 | 整数型 | | |
欲打开的文件名称 | 文本型 | | | | 打开方式 | 整数型 | | | | 共享方式 | 整数型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 局_dwDesiredAccess | 整数型 | | | 局_dwCreationDisposition | 整数型 | | | 局_dwShareMode | 整数型 | | | 局_hFile | 整数型 | | | 如果真 (是否为空 (打开方式 )) 打开方式 = #读写 如果真 (是否为空 (共享方式 )) 共享方式 = #无限制 判断 (打开方式 = #读入 ) 局_dwDesiredAccess = #GENERIC_READ 局_dwCreationDisposition = 3 判断 (打开方式 = #写出 ) 局_dwDesiredAccess = #GENERIC_WRITE 局_dwCreationDisposition = 3 判断 (打开方式 = #读写 ) 局_dwDesiredAccess = 位或 ( #GENERIC_READ, #GENERIC_WRITE )局_dwCreationDisposition = 3 判断 (打开方式 = #重写 ) 局_dwDesiredAccess = #GENERIC_WRITE 局_dwCreationDisposition = 2 判断 (打开方式 = #改写 ) 局_dwDesiredAccess = #GENERIC_WRITE 局_dwCreationDisposition = 1 判断 (打开方式 = #改读 ) 局_dwDesiredAccess = #GENERIC_READ 局_dwCreationDisposition = 1 判断 (共享方式 = #无限制 )局_dwShareMode = 位或 (1, 2, 4 ) 判断 (共享方式 = #禁止读 )局_dwShareMode = 位或 (2, 4 ) 判断 (共享方式 = #禁止写 )局_dwShareMode = 1 判断 (共享方式 = #禁止读写 )局_dwShareMode = 0 局_hFile = CreateFileA (欲打开的文件名称, 局_dwDesiredAccess, 局_dwShareMode, 0, 局_dwCreationDisposition, 128, 0) 如果真 (局_hFile = -1 )局_hFile = 0 返回 (局_hFile)CloseHandle (欲关闭的文件号 )
|
评分
-
查看全部评分
|