排除C中txt文件以外的文件类型
大家好,新年快乐 我必须接受C程序中的juste txt文件 我不知道怎么做。。有什么想法吗 我也不知道文本文件是否包含标题或是它的特征 PS:我正在使用Ubuntu,所以看不到文件扩展名排除C中txt文件以外的文件类型,c,C,大家好,新年快乐 我必须接受C程序中的juste txt文件 我不知道怎么做。。有什么想法吗 我也不知道文本文件是否包含标题或是它的特征 PS:我正在使用Ubuntu,所以看不到文件扩展名 谢谢你在Linux环境中,我个人会选择libmagic,它是实用程序文件的核心。此库的目的正是要完成您想要完成的任务:根据文件内容确定文件的类型 示例用法如下所示 /* identify.c */ #define _POSIX_SOURCE /* required for fileno() */ #inc
谢谢你在Linux环境中,我个人会选择
libmagic
,它是实用程序文件
的核心。此库的目的正是要完成您想要完成的任务:根据文件内容确定文件的类型
示例用法如下所示
/* identify.c */
#define _POSIX_SOURCE /* required for fileno() */
#include <magic.h>
#include <stdlib.h>
#include <stdio.h>
int main(void) {
const char *description;
magic_t cookie;
FILE *fp;
fp = fopen("example.txt", "r");
if(fp == NULL) {
fprintf(stderr, "error: cannot open file\n");
exit(EXIT_FAILURE);
}
cookie = magic_open(MAGIC_NONE);
if(cookie == NULL) {
fprintf(stderr, "error: cannot initialize library\n");
fclose(fp);
exit(EXIT_FAILURE);
}
if( magic_load(cookie, NULL) != 0 ) {
fprintf(stderr, "error: cannot load database : %s\n",
magic_error(cookie));
magic_close(cookie);
fclose(fp);
exit(EXIT_FAILURE);
}
description = magic_descriptor(cookie, fileno(fp));
printf("%s\n", description);
magic_close(cookie);
fclose(fp);
return EXIT_SUCCESS;
}
这个库可以以几种不同的方式使用,所以您可能应该看看。例如,您可以获得MIME类型,而不是上面的描述
您的计算机上可能已经安装了libmagic所属的
文件
包。但是,如果您使用的发行版(如CentOS的RHEL)将开发头拆分为一个单独的包,请确保已安装file devel
。请发布给您带来麻烦的代码。您能展示一些您已经尝试但无法使用的代码吗?为什么-10哈哈,我还没有一个代码,我刚刚用指针和fopen加载了一个文本文件,但我想丹尼任何其他类型的文件
UTF-8 Unicode text