在C中复制缓冲区的部分

时间:2011-02-09 19:32:32

标签: c

Gang,我做错了什么,我想从文件中取出一个特定的偏移+一段数据并将其复制到相同长度的分配缓冲区中......

if( stru_ct->size != 0 ){
  unsigned char * s_buffer = malloc(stru_ct->size);
  if( !s_buffer ){
    printf( "Memory error!" );
    return -1;
    }

  fseek( file, wp->stru_ct->offset, SEEK_SET );
  fread( s_buffer, stru_ct->size, 1, file );
}

没有编译错误,在fread之后,吸收器仍会导致0。我知道偏移+长度的数据。

感谢您的帮助!!

2 个答案:

答案 0 :(得分:1)

检查fseek()fread()的返回值,确保它们没有失败。永远不要认为你做的电话已成功。

答案 1 :(得分:0)

stru_ct->size不等于0吗?它为0似乎是你所看到的最可能的解释。