← Tutti i video

Scriviamo Hexdump in C

Guarda su YouTube → 26:44 7 gennaio 2025
ProgrammazioneC

Descrizione

Ciao! In questo video mostro come implementare l'utility hexdump, che può essere utilizzata per stampare i byte di un qualsiasi file in formato esadecimale. Come al solito, spero che il video sia interessante e stimolante. Se volete supportare il progetto, iscrivetevi al canale e condividete! ------------------------- TIMESTAMP 00:00 Introduzione 01:30 Makefile 05:00 Scrittura main 08:32 Funzione per leggere contenuto file 14:00 Analisi output hexdump 16:00 Scrittura logica hexdump 24:00 Ultime accortezze ------------------------- RIFERIMENTI - Material: https://github.com/LeonardoE95/yt-it/tree/main/src/2024-01-07-programmazione-c-hexdump - Hexdump: https://man7.org/linux/man-pages/man1/hexdump.1.html ------------------------- CONTATTI - Blog: https://blog.leonardotamiano.xyz/ - Github: https://github.com/LeonardoE95?tab=repositories - Support: https://www.paypal.com/donate/?hosted_button_id=T49GUPRXALYTQ

Commenti 13

I commenti vengono da YouTube e sono aggiornati periodicamente.

  1. @mikegomez70 21 luglio 2025
    Eccellente! *****
  2. @darknessse 8 gennaio 2025
    ottimo video
  3. @Greva151 23 novembre 2025
    Video fantastico. Grazie mille Credo di aver trovato un piccolo bug: se il file letto ha una dimensione multipla di 8 bytes manca uno spazio di indentazione. Io l'ho fixato così: if((i == size - 1) && (size % 8) == 0) printf(" ");
  4. @angelonunziolombardi 7 gennaio 2025 1
    Non riesco a trovare la risorsa del programma su github, è errato il link?
    2 risposte
    1. @esadecimale Autore 7 gennaio 2025 1
      No è che lo devo caricare, faccio domani :D
    2. @esadecimale Autore 11 gennaio 2025
      sistemato, link adesso funziona
  5. @samuelepadoan4993 17 gennaio 2025
    Bel video! Solo una precisazione, ma potrei sbagliare. A 12:20 f è un puntatore a FILE, che dovrebbe essere una struct in memoria che rappresenta il file aperto. Il vero file descriptor lo so ottiene con la open() giusto? Informalmente si puo chiamare f file descriptor? Perche f è un puntatore mentre il file descriptor in teoria dovrebbe essere un intero non negativo che indica un file nella tabella dei file aperti del processo :).
    1 risposta
    1. @esadecimale Autore 17 gennaio 2025
      Precisazione assolutamente condivisa! Penso che informalmente si possa fare un po’ di tutto, ovviamente se poi uno comincia a dire cose molto lontane dalla verità, le imprecisioni potrebbero creare danni a chi impara cose sbagliate. Lato mio non posso garantire un 100% di correttezza formale nell’esposizione, in quanto non mi preparo script (altrimenti ci metterei troppo tempo), però cerco sempre di basarmi sulla mia intuizione e dare cosi facendo intuizione a chi guarda. Anche perché molto spesso quello che manca a chi programma e a chi si interfaccia con l’informatica è proprio l’intuizione. Intuitivamente ti direi che puoi trattare la struct FILE* come un file descriptor nel codice scritto perché lo si utilizza con lo stesso fine: identificare il file e accedere ai suoi contenuti in scrittura/lettura. Formalmente sono la stessa cosa? Assolutamente no, e ci sono delle differenze chiave che in altri contesti sono importanti, e per questo è giustissimo menzionarlo! Grazie dell’input
  6. @MA-ig6zx 10 gennaio 2025
    Can you add English subtitles please
    1 risposta
    1. @esadecimale Autore 10 gennaio 2025 1
      I think I can do something better, I actually made this same video on my english channel, link it here: https://youtu.be/kI55YEU_LvY?si=keeYFWYxuvYcLj9C
  7. @poo58389 8 maggio 2025
    Un'ultima accortezza riguarda _if ((i % 8 == 0)) { printf(" "); }_ al quale serve una controparte j, tipo _if ((j > 7)) { printf(" "); }_
    2 risposte
    1. @esadecimale Autore 15 maggio 2025
      Questo per ottenere quale effetto nell'output? Che facendo dei diff tra quello ufficiale e quello scritto qui non vedo differenze particolari Il loop del j serve per stampare i caratteri ascii, ma i caratteri ascii sono stampati uno dopo l'altro, non hanno particolari spazi tra blocchi
    2. @poo58389 15 maggio 2025
      @esadecimale eccetto quello che separa i gruppi di caratteri