二进制文件(linux编程)
1. 存储二进制文件
int WriteBinFile(void)
{
FILE *fw = fopen("./data.bin", "wb");
if(fw == NULL)
{
printf("open file failed!\n");
return -1;
}
unsigned char* pData = (unsigned char*)malloc(512);
memset(pData, 0, 512);
for(int i = 0; i < 512; i++)
{
pData[i] = i%255;
}
for(int i = 0; i < 512; i++)
{
fwrite(pData+i, sizeof(char), 1, fw);
}
fclose(fw);
return 1;
}
2. 读取二进制文件
int ReadBinFile(void)
{
FILE *fr = fopen("./data.bin", "rb"); //存储的大小是200*100;
if (fr == NULL)
{
printf("open file failed!\n");
return -1;
}
int widht = 200;
int height = 100;
unsigned char* output = (unsigned char*)malloc(width*height);
memset(output, 0, width*height*sizeof(char));
int rc = -1;
int data_rc = -1;
int n_rc = 0;
rc = fread(&data_rc, sizeof(char), 1, fr);
while (rc)
{
n_rc += rc;
printf("data[%d]=%d", n_rc, data_rc);
output[n_rc] = data_rc;
rc = fread(&data_rc, sizeof(char), 1, fr);
}
fclose(fr);
return 1;
}