Enviado em 01/02/2018 - 18:26h
Olá, estou trabalhando em um programa que converte arquivos binários em código hexadecimal, depois de muita pesquisa consegui converter os arquivos corretamente para HEX, mas estou tendo problemas em fazer o processo inverso.char *fnp = "imagem.png";
size_t size;
FILE *fp;
fp = fopen(fnp,"rb");
if( fp == NULL )
{
perror("Error while opening the file.\n");
exit(EXIT_FAILURE);
}
// Move o ponteiro para o final do arquivo
fseek(fp,0,SEEK_END);
// pega a posicao atual do ponteiro no arquivo
size = ftell(fp);
// Volta o ponteiro para a posicao inicial do arquivo
rewind(fp);
/*
* Listagem do conteudo do arquivo em hexadecimal
*/
char *sfinal = malloc((size * 8) + 1);
size_t i;
char *buffer = NULL;
int brk = 0;
buffer = malloc(size + 1);
fread(buffer, 1, size, fp);
for(i = 0; i < size; i++)
{
char hex[8];
sprintf(hex, "%.2X ", (unsigned int) buffer[i] & 0xff);
strcat( sfinal, hex );
if( !(++brk % 16) ) strcat( sfinal, "\n" );
}
free(buffer);
buffer = NULL;
//Fechamento do arquivo
fclose(fp);
Atualizando o Passado: Linux no Lenovo G460 em 2025
aaPanel - Um Painel de Hospedagem Gratuito e Poderoso
O macete do Warsaw no Linux Mint e cia
Um modo leve de ouvir/ver áudio/vídeo da internet em máquinas pererecas
Resolver algumas mensagens de erro do SSH
Instalar módulo de segurança do Banco do Brasil Warsaw do tipo .run
O que você está ouvindo agora? [2] (190)
Procrastinação e autossabotagem são problemas muito comuns na sociedad... (5)
warsaw parou de funcionar após atualização do sistema (solução) (10)