Исправлена сереиализация, и десериализация.

This commit is contained in:
Arseniy Romenskiy 2026-03-01 06:16:50 +03:00
parent 2f2ad992c2
commit 8c26dcc356
3 changed files with 19 additions and 15 deletions

View file

@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.0)
cmake_minimum_required(VERSION 3.5)
project(webdisk_c LANGUAGES C)

19
file.h
View file

@ -58,7 +58,7 @@ void name_file_w(char* name, FILE * f_names, uint64_t *names_offset){
uint16_t len = strlen(name);
fwrite(&len, sizeof(uint16_t), 1, f_names);
fwrite(name, 1, len, f_names);
names_offset += len + sizeof(uint16_t);
*names_offset += len + sizeof(uint16_t);
}
void nodes_file_w(struct metadata* meta, FILE * f_nodes, uint64_t *nodes_offset, uint64_t names_offset){
struct metadata_file file;
@ -66,7 +66,7 @@ void nodes_file_w(struct metadata* meta, FILE * f_nodes, uint64_t *nodes_offset,
file.size = meta->size;
file.tipe_dir = meta->tipe_dir;
fwrite(&file, 1, sizeof(struct metadata_file), f_nodes);
nodes_offset += sizeof(struct metadata_file);
*nodes_offset += sizeof(struct metadata_file);
}
void aaasss(struct dir_list_struct* dir_list, struct metadata* mata_local, struct metadata* mata_local_top, FILE *f_nodes, FILE *f_names, int* marker, uint16_t* len){
@ -120,8 +120,10 @@ void nanaaa_2(struct metadata* mata){
mata_local = mata_local->top;
}
dir_list = mata_local->jamp->next;
//if (dir_list == NULL) printf("ПИЗДЕЦ\n");
//dir_list = je_malloc(sizeof(struct dir_list_struct));
if (dir_list == NULL){
printf("ПИЗДЕЦ\n");
dir_list = je_malloc(sizeof(struct dir_list_struct));
}
//aaasss(dir_list, mata_local, mata_local_top, f_nodes, f_names, &marker, &len);
dir_list->file = mata_local;
mata_local = dir_list->file;
@ -140,17 +142,18 @@ void nanaaa_2(struct metadata* mata){
}else{
printf("SAS_AAA\n");
aaasss(dir_list, mata_local, mata_local_top, f_nodes, f_names, &marker, &len);
dir_list = dir_list->next;
dir_list = dir_list->next;
dir_list = je_malloc(sizeof(struct dir_list_struct));
}
}
fread(&file, 1, sizeof(struct metadata_file), f_nodes);
fread(&file, 1, sizeof(struct metadata_file), f_nodes);
fread(&len, 1, sizeof(uint16_t), f_names);
fread(&file_2, 1, len, f_names);
//fread(&file_2, 1, len, f_names); ///xxxxx
printf("TEST\n");
file.name_offset;
char* name;
//printf("Файл: %s\n", name);

13
main.c
View file

@ -29,7 +29,7 @@ unsigned narenas = 4;
#define DEBUG 0
#define DEBUG 1
#define jemalloc 0
#if defined(DEBUG) && DEBUG > 1
@ -462,14 +462,15 @@ int main(int argc, char *argv[]){
int_depth = opts.r_value;
path = opts.path;
/*
struct metadata * mata = je_malloc(sizeof(stack_element));
meta_data_init(mata);
mata->name = path;
mata->tipe_dir = 1;
scanning(mata);
scan_dir(mata);
/*
*/
struct metadata * mata = je_malloc(sizeof(stack_element));
nanaaa_2(mata);
printf("AAAA0: %s\n", mata->name);
@ -477,9 +478,9 @@ int main(int argc, char *argv[]){
printf("tipe_dir: %i\n", mata->dir_list->file->tipe_dir);
printf("size: %li\n", mata->dir_list->file->size);
if (mata->dir_list->next == NULL) printf("SUKA\n");
printf("AAAA2: %s\n", mata->dir_list->next->file->name);
//printf("AAAA2: %s\n", mata->dir_list->next->file->name);
//printf("AAAA2: %s\n", mata->dir_list->file->dir_list->file->name);
*/
char output[64];
struct dir_list_struct* list = mata->dir_list;
@ -496,7 +497,7 @@ int main(int argc, char *argv[]){
//file_weit(mata);
nanaaa(mata);
//nanaaa(mata);
return 0;