gpt4 book ai didi

c++ - Windows Readfile 返回 ERROR_INVALID_PARAMETER 87

转载 作者:可可西里 更新时间:2023-11-01 10:33:08 36 4
gpt4 key购买 nike

我的程序创建了一个邮槽,但是当我调用 ReadFile 时,我得到了 ERROR_INVALID_PARAMETER

参数不对怎么办?

程序代码:

SECURITY_DESCRIPTOR sd;
InitializeSecurityDescriptor(&sd, SECURITY_DESCRIPTOR_REVISION);
SetSecurityDescriptorDacl(&sd, true, NULL, false);

SECURITY_ATTRIBUTES sa;
sa.lpSecurityDescriptor=&sd;
sa.bInheritHandle=true;

msg_id_ = CreateMailslot( msg_key_
, 0
, MAILSLOT_WAIT_FOREVER
, &sa
);

msg_id_ 不是 INVALID_HANDLE_VALUE 所以这个函数成功了。sa 应该允许 GENERIC_WRITEGENERIC_READ

收件人代码:

msg_id_ = CreateFile( msg_key_
, GENERIC_WRITE | GENERIC_READ
, FILE_SHARE_WRITE | FILE_SHARE_READ
, 0
, OPEN_EXISTING
, FILE_FLAG_OVERLAPPED
, 0
);
ReadFile( msg_id_, (void*)msg, 1024, &byteLen, &ovRead);

读取文件失败,错误代码为 ERROR_INVALID_PARAMETER。

最佳答案

您正试图以错误的方式使用邮槽。

通过调用 CreateMailslot 创建的邮槽 server 句柄用于接收消息。

通过调用 CreateFile 创建的 mailslot client 句柄用于发送消息。

您不能使用客户端句柄调用 ReadFile。邮槽不是双向的。

关于c++ - Windows Readfile 返回 ERROR_INVALID_PARAMETER 87,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42640561/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com