Portál AbcLinuxu, 12. listopadu 2025 10:11
Ř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.