Portál AbcLinuxu, 26. dubna 2024 08:03
Řešení dotazu:
#include <stdio.h> #include <stdlib.h> #include <magic.h> int main(int argc, char** argv) { if (argc < 2) { fprintf(stderr, "Zadej soubor jako prvni argument.\n"); exit(1); } int i; char* c; magic_t magic = magic_open(MAGIC_MIME); i = magic_load(magic, "/usr/share/misc/file/magic"); c = (char*) magic_file(magic, argv[1]); printf("%s\n", c); magic_close(magic); return 0; }
#include <stdio.h> #include <magic.h> int main(int argc, char** argv) { if (argc != 2) { fputs("Zadej soubor jako prvni argument.\n", stderr); return 1; } magic_t magic = magic_open(MAGIC_MIME); magic_load(magic, "/usr/share/misc/file/magic"); const char* c = magic_file(magic, argv[1]); puts(c); magic_close(magic); return 0; }
#include <iostream> #include <magic.h> int main(int argc, char** argv) { if (argc != 2) { std::cerr << "Zadej soubor jako prvni argument.\n"; return 1; } magic_t magic = magic_open(MAGIC_MIME); magic_load(magic, "/usr/share/misc/file/magic"); std::cout << magic_file(magic, argv[1]); magic_close(magic); return 0; }
- std::cout << magic_file(magic, argv[1]); + std::cout << magic_file(magic, argv[1]) << "\n";
- std::cout << magic_file(magic, argv[1]) << "\n"; + std::cout << magic_file(magic, argv[1]) << std::endl;:)
std::endl
je mnohem pomalejší než \n.
/usr/share/file/magic.mime
najdete jaka sekvence bajtu se na co prevede (napr. ze kdyz na zacatku najdu ctyri znaky 'GIF8', tak je to image/gif). man magic
format souboru, taky si muzete stahnout zdrojaky k file.
Tiskni Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.