c语言 - 无法为我刚打开的文件创建文件映射,请"path not found"



我正在尝试CreateFileMapping()函数(在windows上)。

现在,在这段代码中:

hFile = CreateFile(filename, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_DELETE, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); 
hFileMapping = CreateFileMapping(hFile, NULL, PAGE_READWRITE, 0, sizeInBlocks*SO_BLOCK_SIZE, filename);

文件已创建,但hFileMapping的值为NULL!这很奇怪,因为我使用hFile(这是一个有效的句柄!),当我在调用CreateFileMApping()后检查GetLastError()状态时,我得到了ERROR_PATH_NOT_FOUND,这很奇怪。因为另一个函数刚刚用它来创建文件。

有什么想法吗?

好吧,一直在做一些挖掘(我知道应该事先做)。CreateFileMapping()的最后一个参数应该是不包含反斜杠的字符串。我使用了我创建的文件路径作为参数(使其成为唯一的名称)。因此,返回的错误实际上应用于该参数,而不是作为第一个参数传递的文件句柄。

相关内容

  • 没有找到相关文章

最新更新