我已经声明了 char data[101];
然后从套接字中读取消息到它(服务器 - 客户端通信)。在屏幕上显示消息后,我想清除/清空该字符数组。我尝试了 memset(data, 0, sizeof(data))
和 bzero(data, sizeof(data));
我认为它仍然没有清除它。在收到第一条消息后的输出中,我还得到了一些奇怪的字符:��|V�,在它们之后还显示了消息。现在我不知道那是来自客户端还是服务器端。我尝试在两者上都清除它,但结果没有任何不同。
这是我发送消息的方式:
char data[101];
read(0, data, 101);
dprintf(socket_fd, data);
bzero(data, sizeof(data));
最佳答案
这是另一种替代方案
//Declare and initialize to NUL characters.
char data[101] ="";
//fgets() will take care of out of boundary issue.
if (fgets(stdin, data, sizeof(data))
dprintf(socket_fd, "%s", data); // Send the data
关于在 C 中清除 char 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44128514/