Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void put_slog_in_file(FILE *f, Slog s)
- {
- if(find_slog_in_file(f,s.key) >= 0)
- printf("Slog already in file\n");
- else
- {
- unsigned int prim_key = middle_square_method(s.key);
- fseek(f,prim_key*sizeof(Baket),SEEK_SET);
- Baket b = read_baket(f);
- for(int i = 0; i < BAKETING_FACTOR; i++)
- {
- if(b.slog_u_baketu[i].status == EMPTY)
- {
- b.slog_u_baketu[i] = s;
- fseek(f, -sizeof(Baket), SEEK_CUR);
- write_baket(f,b);
- return;
- }
- }
- position_at_start_of_secondary_zone(f);
- while(free_space_in_baket(b) == 0)
- {
- b = read_baket(f);
- }
- for(int i = 0; i < BAKETING_FACTOR; i++)
- {
- if(b.slog_u_baketu[i].status == EMPTY)
- {
- b.slog_u_baketu[i] = s;
- fseek(f, -sizeof(Baket), SEEK_CUR);
- write_baket(f,b);
- //if baket now full
- if(i == BAKETING_FACTOR - 1)
- {
- Baket empty_backet = create_empty_baket();
- write_baket(f,empty_backet);
- }
- return;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement