⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fs_types.c

📁 linux下开发的针对所有磁盘的数据恢复的源码
💻 C
字号:
/*** fs_types** The Sleuth Kit **** Identify the type of file system being used**** Brian Carrier [carrier <at> sleuthkit [dot] org]** Copyright (c) 2006-2008 Brian Carrier, Basis Technology.  All Rights reserved** Copyright (c) 2003-2005 Brian Carrier.  All rights reserved **** TASK** Copyright (c) 2002 Brian Carrier, @stake Inc.  All rights reserved**** This software is distributed under the Common Public License 1.0***//** * \file fs_types.c * Contains TSK functions that deal with parsing and printing file system type strings. */#include "tsk_fs_i.h"/** * \internal */typedef struct {    char *name;    TSK_FS_TYPE_ENUM code;    char *comment;} FS_TYPES;/** \internal * The table used to parse input strings - supports * legacy strings - in order of expected usage */static FS_TYPES fs_type_table[] = {    {"ntfs", TSK_FS_TYPE_NTFS_DETECT, "NTFS"},    {"fat", TSK_FS_TYPE_FAT_DETECT, "FAT (Auto Detection)"},    {"ext", TSK_FS_TYPE_EXT_DETECT, "ExtX (Auto Detection)"},    {"iso9660", TSK_FS_TYPE_ISO9660_DETECT, "ISO9660 CD"},#if TSK_USE_HFS    {"hfs", TSK_FS_TYPE_HFS_DETECT, "HFS+"},#endif    {"ufs", TSK_FS_TYPE_FFS_DETECT, "UFS (Auto Detection)"},    {"raw", TSK_FS_TYPE_RAW_DETECT, "Raw Data"},    {"swap", TSK_FS_TYPE_SWAP_DETECT, "Swap Space"},    {"fat12", TSK_FS_TYPE_FAT12, "FAT12"},    {"fat16", TSK_FS_TYPE_FAT16, "FAT16"},    {"fat32", TSK_FS_TYPE_FAT32, "FAT32"},    {"ext2", TSK_FS_TYPE_EXT2, "Ext2"},    {"ext3", TSK_FS_TYPE_EXT3, "Ext3"},    {"ufs1", TSK_FS_TYPE_FFS1, "UFS1"},    {"ufs2", TSK_FS_TYPE_FFS2, "UFS2"},    {0},};static FS_TYPES fs_legacy_type_table[] = {    // legacy CLI arg names    {"linux-ext", TSK_FS_TYPE_EXT_DETECT, "auto-detect Linux EXTxFS"},    {"linux-ext2", TSK_FS_TYPE_EXT2, "Linux TSK_FS_TYPE_EXT_2"},    {"linux-ext3", TSK_FS_TYPE_EXT3, "Linux TSK_FS_TYPE_EXT_3"},    {"bsdi", TSK_FS_TYPE_FFS1, "BSDi FFS"},    {"freebsd", TSK_FS_TYPE_FFS1, "FreeBSD FFS"},    {"netbsd", TSK_FS_TYPE_FFS1, "NetBSD FFS"},    {"openbsd", TSK_FS_TYPE_FFS1, "OpenBSD FFS"},    {"solaris", TSK_FS_TYPE_FFS1B, "Solaris FFS"},    {0},};/** * \ingroup fslib * Parse a string with the file system type and return its internal ID. * * @param str String to parse. * @returns ID of string (or unsupported if the name is unknown) */TSK_FS_TYPE_ENUMtsk_fs_type_toid(const TSK_TCHAR * str){    FS_TYPES *sp;    char tmp[16];    int i;    // convert to char    for (i = 0; i < 15 && str[i] != '\0'; i++) {        tmp[i] = (char) str[i];    }    tmp[i] = '\0';    for (sp = fs_type_table; sp->name; sp++) {        if (strcmp(tmp, sp->name) == 0) {            return sp->code;        }    }    // look at the legacy names    for (sp = fs_legacy_type_table; sp->name; sp++) {        if (strcmp(tmp, sp->name) == 0) {            return sp->code;        }    }    return TSK_FS_TYPE_UNSUPP;}/** * \ingroup fslib * Print the supported file system types to a file handle * @param hFile File handle to print to */voidtsk_fs_type_print(FILE * hFile){    FS_TYPES *sp;    tsk_fprintf(hFile, "Supported file system types:\n");    for (sp = fs_type_table; sp->name; sp++)        tsk_fprintf(hFile, "\t%s (%s)\n", sp->name, sp->comment);}/** * \ingroup fslib * Return the string name of a file system type id. * @param ftype File system type id * @returns Name or NULL on error */const char *tsk_fs_type_toname(TSK_FS_TYPE_ENUM ftype){    FS_TYPES *sp;    for (sp = fs_type_table; sp->name; sp++)        if (sp->code == ftype)            return sp->name;    return NULL;}/** * \ingroup fslib * Return the supported file system types.  * @returns The bit in the return value is 1 if the type is supported. */TSK_FS_TYPE_ENUMtsk_fs_type_supported(){    TSK_FS_TYPE_ENUM sup_types = 0;    FS_TYPES *types;    for (types = fs_type_table; types->name; types++) {        sup_types |= types->code;    }    return sup_types;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -