hexfile - conversor de binario/hexadecimal
Publicado por smith unix (última atualização em 09/01/2026)
[ Hits: 579 ]
Esse programa faz a leitura de um arquivo binário, por exemplo, um *.png e converte para um arquivo de texto *.hex, onde se encontra os valores hexadecimal, e também pode compilar um *.hex de volta para *.png, caso queira!
modo de usar:
abrir
./hexfile -a imagem.png
compilar
./hexfile -f imagem.png.hex
#include <stdio.h>
#include <string.h>
#include <errno.h>
int main(int argc, char *argv[]){
// abre e fecha arquivos
FILE *fileOpen, *fileClose;
// byte a byte
int byte = 0;
// uso ./hexfile -a (abrir)
// ou ./hexfile -f (fechar)
if(strcmp(argv[1], "-a") == 0){
fileOpen = fopen(argv[2], "r");
// caso der merda
if(fileOpen == NULL){
perror("Erro de leitura");
return 1;
}
// concatenação com extenção .hex
char name[256];
strcpy(name, argv[2]);
strcat(name, ".hex");
fileClose = fopen(name, "w");
// caso der merda
if(fileClose == NULL){
perror("Erro de escrita");
return 1;
}
/* captura um byte de cada vez e escreve
em um arquivo *.hex */
while((byte = fgetc(fileOpen)) != EOF){
fprintf(fileClose, "%X ", byte);
}
// fecha
fclose(fileOpen);
fclose(fileClose);
} else if(strcmp(argv[1], "-f") == 0){
// faz a edição para nome original
char name[256];
strcpy(name, argv[2]);
name[strlen(name)-4]='\0';
fileOpen = fopen(argv[2], "r");
// caso der merda
if(fileOpen == NULL){
perror("Erro de leitura");
return 1;
}
fileClose = fopen(name, "wb");
if(fileClose == NULL){
perror("Erro de escrita");
}
// faz a leitura do *.hex e salva binario
while(fscanf(fileOpen, "%X", &byte) == 1){
fputc((unsigned char)byte, fileClose);
}
// fecha
fclose(fileOpen);
fclose(fileClose);
}
else{
// help
printf("use: ./hexfile -a [arquivo]\n");
printf("use: ./hexfile -f [arquivo]\n");
}
return 0;
}
leitura/escrita de dados/estruturas em arquivo
Gentoo: detectando impressoras de rede e como fixar uma impressora por IP
Como o GNOME conseguiu o feito de ser preterido por outras interfaces gráficas
Gentoo binário em 2026: UEFI, LUKS, Btrfs e Systemd
Trabalhando Nativamente com Logs no Linux
Jogando Daikatana (Steam) com Patch 1.3 via Luxtorpeda no Linux
Por que sua empresa precisa de uma PKI (e como automatizar EMISSÕES de certificados via Web API)
Instalando NoMachine no Gentoo com Systemd (acesso Remoto em LAN)
Gentoo: Trocando wpa_supplicant pelo iwd no NetworkManager (Systemd)
Necessário autenticar ao imprimir - Ubuntu X Windowns (1)
O que houve com slackware ??? (11)
O Free Download Manager não abre no Fedora 43 KDE Plasma (2)









