Ошибка в процедуре мультифайловой прошивки - забыт fopen

pull/15/head
forth32 7 years ago
parent 72bbf985df
commit 1a8fec1f46

@ -1 +1 @@
200 210

@ -258,7 +258,6 @@ while ((dentry=readdir(fdir)) != 0) {
} }
closedir(fdir); closedir(fdir);
// формируем полное имя файла в буфере результата // формируем полное имя файла в буфере результата
if (dentry == 0) return 0; // не нашли if (dentry == 0) return 0; // не нашли
strcpy(filename,dirname); strcpy(filename,dirname);
@ -305,7 +304,6 @@ fseek(in,0,SEEK_END);
*size=ftell(in); *size=ftell(in);
fclose(in); fclose(in);
return 1; return 1;
} }

@ -284,13 +284,13 @@ void findfiles (char* fdir) {
char filename[200]; char filename[200];
FILE* in; FILE* in;
printf("\n Поиск файлов-образов разделов...\n\n ## Размер ID Имя Файл\n-----------------------------------------------------------------\n"); printf("\n Поиск файлов-образов разделов...\n\n ## Размер ID Имя Файл\n-----------------------------------------------------------------\n");
for (npart=0;npart<30;npart++) { for (npart=0;npart<30;npart++) {
if (find_file(npart, fdir, filename, &ptable[npart].hd.code, &ptable[npart].hd.psize) == 0) break; // конец поиска - раздела с таким ID не нашли if (find_file(npart, fdir, filename, &ptable[npart].hd.code, &ptable[npart].hd.psize) == 0) break; // конец поиска - раздела с таким ID не нашли
// получаем символическое имя раздела // получаем символическое имя раздела
find_pname(ptable[npart].hd.code,ptable[npart].pname); find_pname(ptable[npart].hd.code,ptable[npart].pname);
printf("\n %02i %8i %08x %-8.8s %s",npart,ptable[npart].hd.psize,ptable[npart].hd.code,ptable[npart].pname,filename); printf("\n %02i %8i %08x %-14.14s %s",npart,ptable[npart].hd.psize,ptable[npart].hd.code,ptable[npart].pname,filename);fflush(stdout);
// распределяем память под образ раздела // распределяем память под образ раздела
ptable[npart].pimage=malloc(ptable[npart].hd.psize); ptable[npart].pimage=malloc(ptable[npart].hd.psize);
@ -300,6 +300,11 @@ for (npart=0;npart<30;npart++) {
} }
// читаем образ в буфер // читаем образ в буфер
in=fopen(filename,"r");
if (in == 0) {
printf("\n Ошибка открытия файла %s",filename);
return;
}
fread(ptable[npart].pimage,ptable[npart].hd.psize,1,in); fread(ptable[npart].pimage,ptable[npart].hd.psize,1,in);
fclose(in); fclose(in);

Loading…
Cancel
Save