C语言文件读写
一个很简单的api,使用比较多,直接po上来吧。。
static void _file_delete(char *filename)
{
char syscmd[128] = {0};
snprintf(syscmd, 128, "rm %s", filename);
printf("do syscmd :%s \n",syscmd);
system(syscmd);
}
static int _file_read(char *filename, uint8_t **out, int *len)
{
FILE *fp = NULL;
int file_len = 0;
fp=fopen(filename,"r");
if(!fp)
{
ht_error("file[%s] open failed !\n",filename);
return -1;
}
fseek(fp, 0, SEEK_END);
file_len= ftell(fp);
fseek(fp, 0, SEEK_SET);
*out = malloc(file_len);
if(file_len != fread(*out, 1, file_len, fp))
{
printf("file:%s read failed \n", filename);
free(out);
out = NULL;
fclose(fp);
return -1;
}
*len = file_len;
fclose(fp);
return 0;
}
static int _file_write(char *filename, uint8_t *data, int len)
{
int data_len = 0;
FILE *fp = NULL;
data_len = len;
fp = fopen(filename, "w");
if(NULL == fp)
{
printf("file:%s open failed \n", filename);
return -1;
}
if(data_len != fwrite(data, 1, data_len, fp))
{
printf("file:%s write failed \n", filename);
_file_delete(filename);
fclose(fp);
return -1;
}
fclose(fp);
return 0;
}