码迷,mamicode.com
首页 > 其他好文 > 详细

以二进制方式读写jpg文件

时间:2017-11-27 15:15:12      阅读:110      评论:0      收藏:0      [点我收藏+]

标签:int   div   返回   pre   释放   seek   har   print   文件   

long _filesize(FILE *stream) 
{ 
    long curpos, length; 
    curpos = ftell(stream); 
    fseek(stream, 0L, SEEK_END); 
    length = ftell(stream); 
    fseek(stream, curpos, SEEK_SET); 
    return length; 
} 

char* readBinFile(char* name,int& nSize)
{
    FILE *fp;
    if ((fp=fopen(name, "rb")) == NULL)
        return NULL;
    long buffsize = _filesize(fp);
    nSize = buffsize;
    char *buff = (char *)malloc(buffsize*sizeof(char));
    //printf("1--%d\n",buffsize);
    fread(buff, buffsize, 1, fp);
    fclose(fp);
    return buff;
}
int writeBinFile(char* name,char* buf, long nSize)
{
    FILE *fp = fopen(name,"wb");
    if (fp == NULL)
    {
        printf("无效文件句柄\n");
        return -1;
    }
    fwrite(buf,nSize,1,fp);
    //printf("2--%d\n",nSize);
    fclose(fp);
    return 0;
}

使用例子

int nSize = 0;//保存jpg二进制数据的大小
char* buf = readBinFile("111.jpg",nSize);
if (buf == NULL)
{
    printf("打开文件失败\n");
}
writeBinFile("112.jpg",buf,nSize);//简单测试,未对返回值做校验
//释放申请的内存
if (buf)
{
    free(buf);
    buf = NULL;
}

 

以二进制方式读写jpg文件

标签:int   div   返回   pre   释放   seek   har   print   文件   

原文地址:http://www.cnblogs.com/LYF-LIUDAO/p/7903879.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!