Visualizzazione dei risultati da 1 a 10 su 21

Visualizzazione discussione

  1. #1

    [C] Lettura/scrittura file binario

    Salve a tutti,
    volevo un aiuto si un programma che sto scrivendo per la manipolazione dei byte all'interno di un file (binario). In pratica leggo un file, modifico dei byte e lo riscrivo...una sorta di criptazione.

    Spiego il problema in cui mi sono imbattuto e poi posto il codice.

    Come vedrete nel codice, leggo il file ma quando stampo il contenuto dei byte memorizzati nel buffer i dati in output, che devono essere in esadecimale, non sono del tutto corretti.

    In pratica, il ciclo di stampa Buf[i] sembra cominci a stampare non dall'inizio del buffer ma più avanti...si perde i primi byte. Se invece mietto Buf[0] o Buf[1] li stampa.

    Poi mi stampa tutti i byte del file con "FFFFFF" davanti al byte interessato:

    Posto il codice con la pseranza che qualcuno possa aitarmi. Grazie.


    #include <stdio.h>
    #include <stdlib.h>
    #include <io.h>

    int main (int argc, char *argv[])
    {
    FILE *pf;
    char *Buf;
    int i;
    unsigned long fileLen;

    if (argc!=2)
    {
    printf("Sintassi: nome_programma nome_file\n");
    exit(1);
    }
    if ((pf=fopen(argv[1],"r+"))==NULL) {
    printf("Impossibile aprire il file %s\n", argv[1]);
    exit(1);
    }

    //Ricava lunghezza file
    fseek(pf, 0, SEEK_END);
    fileLen=ftell(pf);
    fseek(pf, 0, SEEK_SET);

    //Alloca memoria buffer
    Buf=(char *)malloc(fileLen+1);
    if (!Buf)
    {
    fprintf(stderr, "Memory error!");
    fclose(pf);
    exit(1);
    }

    //Lettura contenuto file nel buffer

    while(!feof(pf)){
    fread(Buf, fileLen, 1, pf);
    }
    fclose (pf);

    for(i=0;i<=fileLen;i++)
    printf("%.2x\n",(int)Buf[i]);

    free(Buf);
    }
    Immagini allegate Immagini allegate

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.