表达式:(L"字符串不是空终止"&& 0)

时间:2015-01-26 20:37:08

标签: c mailslot

我正在摆弄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);
}

Imgur link to error

编辑:将strlen更改为sizeof只是将错误更改为"缓冲区大小太小"代替。

1 个答案:

答案 0 :(得分:2)

请参阅strcat_s上的文档。它说第二个参数应该是目标缓冲区的大小。当您通过strlen(fullName)时,无法终止\0

将其更改为sizeof(fullName),您的错误就会消失。