帮看一下,问题出哪里了!!
int main( int argc, char * * argv) {
unsigned int i,fd,fd1;
int res, ret;
unsigned char buf[64]={ } ;
int bytes_to_copy=0;
int filesize=0;
int buf_size = sizeof(buf) ;
struct stat attribute;
unsigned char tpm_sha1start[ ] = { 0, TPM_TAG_RQU_COMMAND,
0, 0, 0, 10,
0, 0, 0, TPM_ORD_SHA1Start}; // 在模拟tpm下用到的
unsigned char tpm_sha1update[ ]={0,TPM_TAG_RQU_COMMAND,
0,0,0,22,
0,0,0,TPM_ORD_SHA1Update,
0,0,0,64,
buf[0], buf[1], buf[2], buf[3], buf[4], buf[5], buf[6], buf[7], buf[8], buf[9],
buf[10], buf[11], buf[12], buf[13], buf[14], buf[15], buf[16], buf[17], buf[18],
buf[19],buf[20], buf[21], buf[22], buf[23], buf[24], buf[25], buf[26], buf[27], buf[28],
buf[29], buf[30], buf[31], buf[32], buf[33],buf[34],buf[35],buf[36],buf[37],buf[38],
buf[39],buf[40],buf[41],buf[42],buf[43],buf[44],buf[45],buf[46],buf[47],buf[48],buf[49],
buf[50],buf[51],buf[52],buf[53],buf[54],buf[55],buf[56],buf[57],buf[58],buf[59],buf[60],
buf[61],buf[62],buf[63]}; // 在模拟tpm下用到的
fd = open ( "/dev/tpm" , O_RDWR) ;
if ( fd < 0) {
printf ( "Error: Open() failed: (%04x)\n " , fd) ;
return - 1;
}
fd1=open("hello.txt",O_RDWR);
if (fd1 < 0)
{
printf("Error opening file\n");
return -1;
}
stat("hello.txt",&attribute);
filesize = attribute.st_size;
bytes_to_copy=filesize;
printf("%d\n",bytes_to_copy);
while (bytes_to_copy > 64)
{
read(fd1,buf,64);
for(i=0;i<64;i++)
printf("%c",buf[i]);
printf("\n"); //打印buf中内容
printf ( "sizeof(tpm_sha1update): %d\n" , sizeof (tpm_sha1update)) ;
printf ( "data in tpm_sha1update: " ) ;
for ( i = 0; i < sizeof ( tpm_sha1update) ; i++ )
printf ( "%02x" , tpm_sha1update[i] ) ;
printf ( "\n" ) ; //打印tpm_sha1update中的内容
为什么第一次打印buf中的内容与下面打印tpm_sha1update中的内容不一样啊
第一次打印的内容确实是从文件中读出的内容而下面打印出来的buf的内容还是buf初始化时的内容
多谢高手指点了
中间代码有省略的.....