NVDS config文件/CSV文件内容在配置文件中的存放格式:根据csvOffset和hex1Size判断是否存在相关代码
时间: 2024-03-16 10:45:46 浏览: 144
以下为一个示例代码,用于判断NVDS配置文件中是否存在CSV文件内容:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct {
unsigned int size;
unsigned char type;
unsigned char data[0];
} nvds_block_t;
int main(int argc, char *argv[])
{
FILE *fp = fopen("nvds.bin", "rb");
if (!fp) {
printf("Failed to open file!\n");
return -1;
}
// 读取NVDS配置文件中的数据块头
nvds_block_t block_header;
fread(&block_header, sizeof(nvds_block_t), 1, fp);
// 判断是否存在CSV文件内容
int has_csv = 0;
unsigned int csv_offset = 0;
unsigned int csv_size = 0;
while (!feof(fp)) {
// 读取数据块头
nvds_block_t block_header;
fread(&block_header, sizeof(nvds_block_t), 1, fp);
// 判断数据块类型
if (block_header.type == 0x20) {
// 找到CSV文件内容所在的数据块
csv_offset = ftell(fp);
csv_size = block_header.size;
has_csv = 1;
break;
}
// 跳过当前数据块
fseek(fp, block_header.size, SEEK_CUR);
}
// 输出结果
if (has_csv) {
printf("CSV file found! Offset: 0x%08x, Size: %u bytes\n", csv_offset, csv_size);
} else {
printf("CSV file not found!\n");
}
fclose(fp);
return 0;
}
```
在上述代码中,先读取了NVDS配置文件中的第一个数据块头,并根据数据块头中的信息来判断是否存在CSV文件内容。然后遍历数据块,找到类型为0x20的数据块,即可确定CSV文件内容在二进制数据块中的偏移量和大小。最后输出结果即可。
阅读全文