数组比较问题!!!

ffeige1984 CSDN会员 ffeige1984 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我队磁盘扇区进行读写测试,把写入值放入CHAR BUF1[512];
读出值放入CHAR BUF2[512]; 用memcmp(buf1,buf2,512);
老出错,但通过打印显示数据正确啊memcmp返回值不相等啊
程序如下:
for(j = 0; j < NumOfLBASector; j++) //按LBA模式进行整个磁盘写数据
{
outportb(0x1f3,j);
     outportb(0x1f4,j>>8);
outportb(0x1f5,j>>16);
outportb(0x1f6,(0xe<<4)|(j>>24));
outportb(0x1f7,0x30);

temp1 = (j+i) % 256;
memset(buf1, temp1, sizeof(buf1));

while(inportb(0x1f7) != 0x58);

for(k = 0; k < 512; k++)
{
outportb(0x1f0,buf1[k]);
}

//读数据
outportb(0x1f3,j);
     outportb(0x1f4,j>>8);
outportb(0x1f5,j>>16);
outportb(0x1f6,(0xe<<4)|(j>>24));
outportb(0x1f7,0x20);

while(inportb(0x1f7) != 0x58);

for(k = 0; k < 512; k++)
    {
buf2[k] = inportb(0x1f0);

}

if(memcmp(buf1, buf2,sizeof(buf1)))
     {
 fprintf(fp,time(&time));
 fprintf(fp,"\n数据效验错误!!")
 fprintf(fp,"\n读写次数:%4d,LBA 模式扇区号: %ld\n",i,j);

 }
...全文

相关推荐

评论 7
收藏 已收藏
分享
返回顶部
ffeige1984 CSDN会员
C语言 70,039 成员 243,237 内容