image_t *charger_image_pgm(const char *nom_fichier) { FILE *file = fopen(nom_fichier, "r"); image_t *img = NULL; if (file) { char buffer[TMP_STR_SIZE]; fgets(buffer, TMP_STR_SIZE, file); read_funct_t fun_read = read_strategy(buffer); if (fun_read) { img = creer_image_path(nom_fichier); while (fgets(buffer, TMP_STR_SIZE, file) && (sscanf(buffer, "%zu %zu", &img->w, &img->h) == 0)) {} while (fgets(buffer, TMP_STR_SIZE, file) && (sscanf(buffer, "%hhu", &img->maxval) == 0)) {} img->buff = fun_read(file, img); } else { perror("charge_image_pgm: Error invalid pgm file."); } fclose(file); } else { perror("charge_image_pgm: Error invalid filename or file."); } return img; }
void read_classes_with_one_subclass_discr_fun(FILE *fd, const majlattice *lattice, majclass ***classes, size_t *num_classes, fun **funs) { *num_classes = uint64_read(fd); *classes = malloc(*num_classes * sizeof(majclass *)); assert(*classes != NULL); *funs = malloc(*num_classes * sizeof(fun)); assert(*funs != NULL); for(size_t i = 0; i < *num_classes; ++i) { majclass_id class_id, subclass_id; majclass_id_read(fd, &class_id); majclass_id_read(fd, &subclass_id); fun_read(fd, *funs + i); (*classes)[i] = majlattice_get_class(lattice, class_id); } }