我正在摆弄mailslots,现在我遇到了问题。 每当我尝试运行时,我会在标题中收到错误消息,但我不知道应该如何修复它。 我想做的是"修复"邮件的完整路径,但它似乎不像strcat_s-part。
HANDLE mailslotCreate (char *name) {
char fullName[50] = "\\\\.\\mailslot\\";
strcat_s(fullName, strlen(fullName), name);
return CreateMailslot(fullName, 0, TIME_OUT, NULL);
}
编辑:将strlen更改为sizeof只是将错误更改为"缓冲区大小太小"代替。
答案 0 :(得分:2)
请参阅strcat_s上的文档。它说第二个参数应该是目标缓冲区的大小。当您通过strlen(fullName)
时,无法终止\0
。
将其更改为sizeof(fullName)
,您的错误就会消失。