- 论坛徽章:
- 13
|
本帖最后由 ckf513728912 于 2013-01-21 19:15 编辑
小弟写了一个程序想让设备返回的参数与hex文件里的内容对比,结果发现用strncpy这个打印出的参数和设备返回来的参数不一样。
前面有近1000行是相同的,1000行以后就不太相同,不知道是我用fgets函数问题还是用strncpy有问题。 希望能给小弟指导一点。3Q
以下是小弟的程序
if((stream=fopen("hex.txt","rb"))<0)
printf( "Fopen file error");
else
printf( "Fopen file OK!");
// while(fgets(buffer,SIZE,stream)!=NULL){
while(!feof(stream)){
for(i=0x00F40080;i<=0x00F40A80;i++){
memset(&chRestRsp, 0x0, sizeof(chRestRsp));
memset(buffer,0x0, sizeof(buffer));
sprintf(b,"%08X",i);
str=strncat(b,a,2);
strcpy(szApdu,str);
svrTransmit(szApdu, chRestRsp);
printf("\n发送:%s\n返回:%s", szApdu, chRestRsp);
#if 1
if(!(strncmp(chRestRsp,buffer,16)))
printf( "Buffer strcmp error!\n");
else
printf("匹配成功\n");
#endif
fgets(buffer,SIZE,stream);
printf( "Buffer: %s\n", buffer);
i+=0x000F;
Sleep(250);
}
} |
|