Salve a tutti. Ho scritto un programma in C che mi scrive 7 interi (sul mio sistema occupano 4 byte l'uno, ottenuto con sizeof(int)), il problema è che il file pesa + di 100byte.. i primi 7 sono quelli che volevo gli altri sembrano essere stati messi "a caso".. E' un errore mio oppure il C scrive + byte? Ho provato con un hex editor a cancellare tutti i byte dal file binario tenendo i primi 7 e non mi da problemi in lettura... quindi quei byte sono assolutamente inutili.. non segnano la fine del file vero? 100byte mi sembrano eccessivi..
Sapreste spiegarmi la ragione di questi byte? A me sembra insolito.
Grazie a tutti, vi allego il programma scritto in c per scrivere/leggere.
Codice PHP:/*
* file.c
*
*
* Created by Tommaso Ricci on 07/05/11.
* Copyright 2011 __MyCompanyName__. All rights reserved.
*
*/
#include <stdio.h>
void read(int number){
FILE * fp = fopen("prova.dat", "rb");
int n[number], i;
fread(n, sizeof(n[0]), number, fp);
fclose(fp);
for (i=0; i<number; i++) {
printf("%d ", n[i]);
}
printf("\n");
return;
}
void write(int * num, int size, int elements){
FILE * fp = fopen("prova.dat", "wb");
fwrite(num, size, elements, fp);
fclose(fp);
return;
}
int main(int argc, char * argv[]){
int n = 7, mio[n] = {7,6,5,4,3,2,1};
//printf("%d\n", sizeof(int));
//read(n);
write(mio, 7 * sizeof(int), 7);
return 0;
}


Rispondi quotando