读取 xml 个 tlv 格式的文件

read xml file with tlv format

我读了xml tlv 格式的文件,xml 文件有 593 字节,我读了下面的代码。前 512 字节为真,其余字节为假。我读到余数字节是00。

int fd,ret;
unsigned char *filebuffer[6400];

fd = open("filename" , O_RDONLY);
printf("file open return value : %d \n", fd);
if (fd == -1)
{
    printf("Error in openning the file!\n");
    exit(0);
}
//read the file
int i = 0;
do {
    ret = read(fd,&filebuffer[i],512);
    printf("file read return value : %d \n", ret);
    if (ret == -1)
    {
        printf("Error in reading!\n");
        exit(0);
    }
    i += ret;
    printf("i = %d, ret = %d",i,ret);

} while (ret > 0);

int k;
char tmp[6400];
memcpy(tmp,filebuffer,i);
printf("file buffer\n");
for (k = 0; k < i; ++k) {
    printf("%02x",tmp[i]);
}

close(fd);}

我用正在读取的 xml 文件填充文件缓冲区。 文件缓冲区示例;文件缓冲区:1F0583212 .....(512 字节)000000

filebuffer 的定义不正确。将其更改为:

unsigned char filebuffer[6400];