printrecord(&as,filename);
}
} else {
- long seekdist= -(long)sizeof(as);
r= fseek(file,0,SEEK_END); if (r) { perror(filename); exit(8); }
pos= ftell(file); if (pos==-1) { perror(filename); exit(8); }
if (pos % sizeof(as)) {
r= fseek(file,pos,SEEK_SET); if (r==-1) { perror(filename); exit(8); }
r= fread(&as,1,sizeof(as),file); if (r!=sizeof(as)) { perror(filename); exit(8); }
printrecord(&as,filename);
- seekdist= -2*(long)sizeof(as);
}
}
if (ferror(file) || fclose(file)) { perror(filename); exit(8); }