fork download
  1. void Bank::backup(void) {
  2. if(fp == NULL) //Αν μέχρι τώρα δεν έχω ξανανοίξει το αρχείο
  3. fp = fopen(FILE_NAME, "wb");
  4.  
  5. rewind(fp); //Πηγαίνω στην αρχή για καλό και για κακό
  6.  
  7. fwrite((const void *)&next_id, sizeof(next_id), 1, fp); //Γράφω το επόμενο διαθέσιμο id
  8.  
  9. for(Client *dummy = list; dummy != NULL;dummy = dummy->next) //Ενώ το dummy δεν είναι NULL
  10. fwrite(dummy, sizeof(Client), 1, fp); //Γράφω το τρέχοντα "πελάτη"
  11. }
  12.  
  13. void Bank::load(void) {
  14. fp = fopen(FILE_NAME, "rb");
  15. Client *dummy;
  16. fread(&next_id, sizeof(next_id), 1, fp); //Διαβάζω το επόμενο διαθέσιμο id
  17. int i = 0;
  18. for(list = dummy; i < next_id; i++, dummy = dummy->next) { //Ενώ υπάρχει και άλλος πελάτης στο αρχείο
  19. dummy = (Client *) malloc(sizeof(Client)); //Κάνω allocate τον απαραίτητο χώρο
  20. fread(dummy, sizeof(Client), 1, fp); //Διαβάζω έναν "πελάτη"
  21. }
  22.  
  23. //dummy->next = NULL; //Αυτό είναι λάθος
  24. //end = dummy; //Και αυτό επίσης
  25. }
Not running #stdin #stdout 0s 0KB
stdin
Standard input is empty
stdout
Standard output is empty