08 Dec 2009 Mimetype d'un fichier en C
Tags: dev cObtenir le mimetype d’un fichier en C
La lib magic est parfaite pour ça. man 3 libmagic sous FreeBSD.
Petit exemple:
BSDmakefile:
PROG= mimetype
LDFLAGS+= -lmagic
CFLAGS+= -Wall -g -ggdb3
NO_MAN= yes
.include <bsd.prog.mk>
Code:
#include <magic.h>
#include <stdio.h>
#include <stdlib.h>
#include <err.h>
int
main(int argc, char *argv[])
{
const char* program_name = argv[0];
char *filename = argv[1];
if (filename == NULL) {
fprintf(stderr, "Usage: %s file\n", program_name);
return(1);
}
struct magic_set *magic = magic_open(MAGIC_MIME_TYPE);
if (magic == NULL)
err(1, "magic_set");
magic_load(magic, NULL);
printf("%s: %s\n", filename, magic_file(magic, filename));
magic_close(magic);
return(0);
}