Добавил:
Fragga
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:лабораторки по ОС препод Челноков / 2семестр / wi2 / olesha / lab3 / main
.c#include <stdio.h>
#include "sort.h"
struct total{
int size1;
int size2;
int total;
} tl;
void viewerror(FILE *fp, char *str){
if(ferror(fp))
perror(str);
fclose(fp);
}
int getsize(FILE *fp){
int size;
fread(&size, sizeof(int), 1, fp);
return --size;
}
void gettotal(FILE *fp1, FILE *fp2, struct total *ptl){
ptl->size1 = getsize(fp1);
ptl->size2 = getsize(fp2);
ptl->total = ptl->size1 + ptl->size2;
}
int main(int argc, char *argv[]){
int i;
struct total *ptl;
FILE *file1;
FILE *file2;
ptl = &tl;
file1 = fopen(argv[1],"r");
file2 = fopen(argv[2],"r");
gettotal(file1, file2, ptl);
void *pa = (void *) malloc(sizeof(int) * ptl->total);
fread(pa, sizeof(int), ptl->size1, file1);
viewerror(file1, argv[0]);
fread((int *)pa+ptl->size1, sizeof(int), ptl->size2, file2);
viewerror(file2,argv[0]);
fclose(file1);
fclose(file2);
sort((int *)pa, 0, ptl->total-1);
for(i = 0;i < ptl->total; i++)
printf("\n%d",*((int *)pa + i));
free(pa);
return 0;
}