热门 购物 团购 理财 文学 人才 体育 汽车 游戏 软件 军事 音乐 视频 媒体 论坛 博客 银行 交友 综合
一起购 唯品会 梦芭莎 趣玩网 凡客诚品 麦考林 乐淘鞋网 弗克尚品 绿盒子 俏物悄语 新蛋网 当当网 玛萨玛索
拉手网 糯米网 爱帮团 聚划算 58团购 美团网 QQ团购 大众点评团 窝窝团 美淘网 满座网 团宝网 饭统饭团
起点网 榕树下 小说阅读 潇湘书院 红袖添香 幻剑书盟 新浪游戏 太平洋游戏 163邮箱 中国游戏 游戏中国 霏凡软件 铁血军事
访问本站赠送红包啦!凡在支付宝搜索数字口令 528131323 都将获得红包,天天搜索此口令天天得红包^_^
Health Sitology Family Finance Appliances Shopping Clothing Education Legal Rituals Beauty Property Travel Pet Medical Cyclopedia History Military Computers Sports Job Anecdote Geographic Mixed Entertain Literature Emotion Agriculture
/**
 * 任何人任何机构皆可用于任何项目,此软件免费无需书面授权
 * 在软件和软件的所有副本中都必须包含版权声明和软件相关注解
 *
 * 模块: ftype.c
 * 简述: 判断文件类型
 * 作者: woods zhang  ->  hoojar@163.com -> http://www.hecart.com/
 * 版权: 2006-2018, 张树林 拥有此源码所有版权 (MIT许可协议)
 * Copyright 2006-2018, Woods Zhang All Rights Reserved (The MIT License)
 */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

/**
 * 文件类型或扩展名
 *
 * @param fname 文件名
 * @return 返回文件类型扩展名
 */
char *filetype(char *fname)
{
    struct EXT
    {
        char e[5];
        char h[32];
    } ext[29] =
    {
        {"bmp", "424D"},
        {"jpg", "FFD8FF"},
        {"mpg", "000001B3"},
        {"mpg", "000001BA"},
        {"pst", "2142444E"},
        {"rm", "2E524D46"},
        {"ram", "2E7261FD"},
        {"psd", "38425053"},
        {"dwg", "41433130"},
        {"avi", "41564920"},
        {"gif", "47494638"},
        {"tif", "49492A00"},
        {"mid", "4D546864"},
        {"zip", "504B0304"},
        {"rar", "52617221"},
        {"wav", "57415645"},
        {"mov", "6D6F6F76"},
        {"png", "89504E47"},
        {"qdf", "AC9EBD8F"},
        {"doc", "D0CF11E0"},
        {"pwl", "E3828596"},
        {"wpd", "FF575043"},
        {"xml", "3C3F786D6C"},
        {"html", "68746D6C3E"},
        {"rtf", "7B5C727466"},
        {"pdf", "255044462D312E"},
        {"asf", "3026B2758E66CF11"},
        {"dbx", "CFAD12FEC5FD746F"},
        {"mdb", "5374616E64617264204A"},
    };

    int i, j, c;
    static char fext[32] = {0};
    FILE *f = fopen(fname, "rb");
    if (f)
    {
        for (i = 0; i < 14; i++)
        {
            c = fgetc(f);
            if (c == EOF)
            {
                break;
            }
            sprintf(fext + i * 2, "%2X", (unsigned char) c);
            for (j = 0; j < 29; j++)
            {
                if (strcmp(fext, ext[j].h) == 0)
                {
                    fclose(f);
                    strcpy(fext, ext[j].e);
                    return fext;
                }
            }
        }
        fclose(f);
    }

    /**
     * 截取文件扩展名
     */
    i = 0, j = 0;
    while (*fname)
    {
        if (*fname == '.')
        {
            j = i;
        }
        i++;
        fname++;
    }

    if (j == 0)
    {
        strcpy(fext, "unk");
    }
    else
    {
        fname = fname - i;//移动指针到头处
        memcpy(fext, &fname[j + 1], i - j - 1);
        fext[i - j - 1] = '';
    }

    return fext;
}

int main(int argc, char **argv)
{
    if (argc < 2 || argc > 2)
    {
        fprintf(stderr, "GuessFileExt according to head bytes. Usage: %s filename ", argv[0]);
        return 1;
    }

    printf("FILE EXT: %s ", filetype(argv[1]));

    return 0;
}
Reply content :
Photo link :
语法: counter-increment : none | identifier number 参数: none :  阻止计数器增加 identifier number :  identifier定义一个将被增加selector,id,或者class。number定义增加的数值。可以为负值。…  Details
scriptlet包含一个有效的程序段. JSP 语法<% code fragment %> 例子<% String name = null; if (request.getParameter("name") == null) { %> <%@ include file="error.html" %> <% } else { foo…  Details
----INDEX---- 1. soap请求方式 2. post请求方式 3. SHOWALLNODE函数(关于节点各属性和数据显示) --------------------- 一.SOAP请求示例 下面是一个 SOAP 请求示例。所显示的占位符需要由实际值替换。 …  Details
Software development companies in India have grown largely over the past couple of years with major IT giants establishing their baseThere was a time when the word IT was alien and everybody looked at the IT industry in aweBut today, the number of …  Details
用这段代码就可以了: <html> <body> <!-- other stuff --> <form name="tester" action="<%=%>" method="post"> <input type="hidden" name="JS_SWITCH" value…  Details
 C#(发音为“See Sharp”)是简单、现代、面向对象和类型安全的编程语言。C#起源于C语言家族,因此,C,C++和Java的程序员很快就能熟悉它。C#已经获得了ECMA International和ISO/IEC的国际标准认…  Details
These days it's hard to know when you made the right technology purchase online until it appears before a door and have tried itThe same goes when you're trying to purchase your DVD media onlineActually it's even harder if you are purchasing DVD prod…  Details
By Jesse MillerComputer CardsComputer cards typically include a battery to provide power to retain information in memory and for operations, such as input and output functions. Such computer cards may provide memory expansion for data storage.…  Details
问:我想将一台电脑中积累的智能ABC输入法自定义词库移动到另一台新电脑中,以便能利用以往自定义的词,我使用的操作系统是Windows 2000。请问有没有比较简单的方法? 答:你…  Details
CNNIC发布的第15次互联网报告显示,中国网民人数早在2004年底就已经超过9400万,而2005年已经过去了1/3,有人推算,目前国内网民数量已经突破1亿大关。如今的互联网已经进入相…  Details