Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2019
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.27 KB | None | 0 0
  1. void put_slog_in_file(FILE *f, Slog s)
  2. {
  3. if(find_slog_in_file(f,s.key) >= 0)
  4. printf("Slog already in file\n");
  5. else
  6. {
  7. unsigned int prim_key = middle_square_method(s.key);
  8. fseek(f,prim_key*sizeof(Baket),SEEK_SET);
  9. Baket b = read_baket(f);
  10. for(int i = 0; i < BAKETING_FACTOR; i++)
  11. {
  12. if(b.slog_u_baketu[i].status == EMPTY)
  13. {
  14. b.slog_u_baketu[i] = s;
  15. fseek(f, -sizeof(Baket), SEEK_CUR);
  16. write_baket(f,b);
  17. return;
  18. }
  19. }
  20.  
  21. position_at_start_of_secondary_zone(f);
  22. while(free_space_in_baket(b) == 0)
  23. {
  24. b = read_baket(f);
  25. }
  26. for(int i = 0; i < BAKETING_FACTOR; i++)
  27. {
  28. if(b.slog_u_baketu[i].status == EMPTY)
  29. {
  30. b.slog_u_baketu[i] = s;
  31. fseek(f, -sizeof(Baket), SEEK_CUR);
  32. write_baket(f,b);
  33. //if baket now full
  34. if(i == BAKETING_FACTOR - 1)
  35. {
  36. Baket empty_backet = create_empty_baket();
  37. write_baket(f,empty_backet);
  38. }
  39. return;
  40. }
  41. }
  42. }
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement