【问题标题】:fwrite seems to work, memcpy failsfwrite 似乎工作,memcpy 失败
【发布时间】:2011-06-20 17:37:35
【问题描述】:

我不确定发生了什么。与缓冲有关的东西。 ……代码……

if (data->inbound){
//fwrite(buf, res, 1, stdout); //data->inbound);
char tmp[SOAP_BUFLEN+1];
memset(tmp,0,SOAP_BUFLEN+1);
if(len>0) {
    memcpy(tmp, buf, minim(SOAP_BUFLEN,len) );
    tmp[minim(SOAP_BUFLEN,len)] = '\0'; 
    printf("%s\n",tmp);
    //printf("-----------------\n");
}

当我使用 fwrite 时,我看到输出没有问题。当我使用 memcpy 时,我在输出中看到重复的条目?我需要冲洗一些东西吗?

在 printf 语句的末尾,我看到要重复的 tmp 的一部分。

【问题讨论】:

    标签: c string io


    【解决方案1】:

    您为 fwrite 和 memcpy 使用了不同的长度值。根据此处的代码(和注释掉的代码),memcpy 使用lenSOAP_BUFLEN 中的较小者。 fwrite 使用res * 1。所以我敢打赌len != res

    【讨论】:

      猜你喜欢
      • 2012-03-02
      • 1970-01-01
      • 1970-01-01
      • 2021-12-10
      • 2016-04-05
      • 2018-12-11
      • 1970-01-01
      • 2012-05-15
      • 1970-01-01
      相关资源
      最近更新 更多