Enviado em 06/08/2022 - 12:33h
<stdio.h> #define BLOCOS 16 FILE *Abre_hexdump(const char *caminho, const char *mode) { FILE *fp; if (!(fp = fopen(caminho, mode))){ printf("error ao abrir '%s'", caminho); return 0; }return fp; } int main(int argc, char const *argv[]){ FILE *fp_in, *fp_out; unsigned char buf[BLOCOS]; size_t nread; int i, c, npos; if (argc < 2 || argc > 3){ printf("use: %s <file-in> [file-out]\n", argv[0]); return 0; }/* Abre o arquivo de entrada */ fp_in = Abre_hexdump(argv[1], "r"); /* Redirecionar a saída se um arquivo de saída for definido */ fp_out = (argc == 3 ? Abre_hexdump_open(argv[2], "w") : stdout); npos = 0; /* Exibir BLOCOS de bytes dos dados hexadecimais de cada vez */ while ((nread = fread(buf, 1, sizeof buf, fp_in)) > 1) { fprintf(fp_out, "%04x: ", npos); npos += BLOCOS; /* print valores hexadecimais, exemplo 3f 62 ec f0*/ for (i = 0; i < BLOCOS; i++) fprintf(fp_out, "%02x ", buf[i]); /* print valores ascii ..A6..ó.j...D*/ for (i = 0; i < BLOCOS; i++) { c = buf[i]; fprintf(fp_out, "%c", (c >= 33 && c <= 255 ? c : '.')); }fprintf(fp_out, "\n"); }fclose(fp_in); return 0; }
(buf[i] >= 33 || buf[i] <=126); ou, >0x20 && <=0x7e
"%c", (c >= 33 && c <= 255 ? c : '.')
Enviado em 07/08/2022 - 03:40h
Normalmente você faria algo como o seguinte:putchar(isprint(c)? c: '.');
Enviado em 07/08/2022 - 04:22h
(isprint(buf[i])?buf[i]:'a')
(isprint(buf[i])?buf[i]:'')
Enviado em 14/11/2022 - 05:48h
Try grep, like:Criar entrada (menuentry) ISO no Grub
Como gerar qualquer emoji ou símbolo unicode a partir do seu teclado
Instalando o Pi-Hole versão v5.18.4 depois do lançamento da versão v6.0
Instalar o VIM 9.1 no Debian 12
Como saber o range de um IP público?
Muitas dificuldades ao instalar distro Linux em Notebook Sony Vaio PCG-6131L (VPCEA24FM)
Dock do debian está muito pequena (1)
Instalei Windows 11 e não alterou o Grub do Debian (0)
Linux Mint (21.2) não reconhece teclado mecanico RASEC da PCYES (2)