Saving and Reading struct array with binary file in C language -


there problems reading function.

my reading function is:

int readfiletopic(file* f, pic* picture_reccord, int picnumber){   int count = 0;   f = fopen("record.dat", "rb");   if (f == null){     printf("\n unable open file!\n");  }  else{     count= fread(&picture_reccord, sizeof(picture_reccord), maximun_picture,    f);     fclose(f);  }  if (count <=0 && count >= maximun_picture)     return -1;    //breaking programe   //picture_reccord[count].filename[0] = '\n';   return count;   } 

this how call

case 3:     printf("read picture records disk\n");     count= readfiletopic(file, picturerecord, picnumber);     printf("\n\nread %d photos\n", count);     //testing     printf("\n%d\n", picturerecord[0].location);     break; 

it prints "read 4 photos" every time , grabage in testing part

this saving function in case problems are

void savepic(file* f, pic picture_record){  f= fopen("record.dat","wb"); if (f == null) {     printf("\nerror! not able save!\n"); }  fwrite(&picture_record, sizeof(picture_record), 1, f); fclose(f);  printf("one pic saved\n"); 

}

this updated struct @ jonathan leffler

typedef struct picture_data { char filename[input_length_filename]; char description[input_length_description]; char location[input_length_filename]; int peoplecount; }pic; 

can me , tell me problems ?

when structure contains pointers, cannot 'serialized' sensibly. is, cannot written using of functions fwrite().

why not, ask? question!

think of way: if have structure containing pointer string (a name, example), data in string not contiguous structure, , size isn't included in size of structure.

by contrast, if structure contains (fixed size) array of characters, can write whole structure because data contiguous rest of structure, , counted in size of array.

flexible array members require little bit of care, can written disk provided main structure records how big flexible array is. can write in 1 operation, need read in two. first read reads inflexible part of structure; 1 of data items in tells how space allocate , how data read.


Comments

Popular posts from this blog

how to proxy from https to http with lighttpd -

android - Automated my builds -

python - Flask migration error -