gpt4 book ai didi

c - 写入文件 C 时忽略\0 个字符

转载 作者:太空宇宙 更新时间:2023-11-04 08:47:56 25 4
gpt4 key购买 nike

我正在编写简单的服务器 - 客户端应用程序。在服务器端,我收到数据的 char 数组(具有 const 大小)。但是,最后一个字符数组可以有空字节。

我将收到的数组追加到循环文件中。这是代码:

char buffer[256];
/* ... */
FILE *file;
file = fopen(file_name,"ab+");
for (i = 0; i < parts; ++i) {
if ((length = recv(sockfd, buffer, 256, 0)) < 0) {
/* recv failed */
}
send(sockfd, "OK", 2, 0);
fwrite(buffer, 1, 256, file);
}
fclose(file);

例如:... Quisque dignissim turpis sapien, non facilisis risus gravida 在。 \00\00\00\00

有什么方法可以跳过最后的\0 个字符吗?或者我必须逐字节复制最后一个数组。

最佳答案

使用

fwrite(buffer, 1, length, file);

这只会写入您实际收到的字符数。如果额外的 \0 是数据包的一部分,它将被写入,否则不会。

如果您收到 \0 字符作为数据包的一部分,但您不想写入它们,那么您必须这样做:

fwrite(buffer, 1, strlen(buffer), file);

关于c - 写入文件 C 时忽略\0 个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20922926/

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