-5
您好,新年快樂txt文件,排除文件類型期望用C
我必須接受我的C程序中庸之道txt文件,
我沒有任何想法如何做到了。 。 有任何想法嗎?
而且我不知道,如果文本文件包含頁眉或表徵它的東西..
PS:我使用Ubuntu所以文件擴展名是沒見過。
謝謝
您好,新年快樂txt文件,排除文件類型期望用C
我必須接受我的C程序中庸之道txt文件,
我沒有任何想法如何做到了。 。 有任何想法嗎?
而且我不知道,如果文本文件包含頁眉或表徵它的東西..
PS:我使用Ubuntu所以文件擴展名是沒見過。
謝謝
在Linux環境中,我會親自去與libmagic
,這是該實用程序file
的核心。這個庫的目的是完成你想要完成的任務:根據它的內容識別文件的類型。
示例用法如下所示。
/* 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;
}
名稱這個源文件identify.c
,創建一個文本文件名example.txt
在同一個目錄中的一些內容,並與編譯:
的gcc -Wall -std = C99 -pedantic -lmagic -o識別標識.c
然後運行它。
./identify
,你會得到這樣的印:
UTF-8 Unicode text
這個庫可以在幾個不同的方式來使用,所以你應該有一個看看man page。例如,您可以獲取MIME類型,而不是像上面那樣的描述。
其中libmagic是其中的一部分的file
包可能已經安裝在您的機器上。但是,如果您使用的是像CentOS的RHEL這樣的發行版將開發標題分割成單獨的包,請確保已安裝file-devel
。
請張貼給你麻煩的代碼。 –
你可以顯示一些你已經嘗試過但不能工作的代碼嗎? –
爲什麼 - 10哈哈,我還沒有一個代碼,我剛剛使用指針和fopen加載了一個文本文件,但我想denny任何其他文件類型 – user3568611