#include "stdio.h" /* BCKUP.C MODIFIES SYSTEM DIRECTORIES */ main() { int size, files; /* size= file size */ /* files= file cont */ char line[50], temp[10]; /* line= data input line */ /* temp= used in size conversion */ char name[20], date[12]; /* name=file name (compressed)*/ /* date= creation date "-" removed */ char outpfn[20]; /* outpfn= output file name */ char lname[20]; int long cum ; /* cum= location calulated */ int big; char dev[6], file[14]; /* dev= device name ..incl : */ /* file= file name containing directory */ /* for device dev */ FILE *fopen(), *fpi, *fpo; int i, j; int flg; int iflg, err, ipos; /* set counters ... */ cum=0 ; files=0 ; big=0; /* get file name that contains directory of device */ printf("\nHIGH DENSITY TAPE BACKUP SYSTEM\n\n"); printf("ENTER : output file name : "); gets(outpfn); fpo=fopen(outpfn,"wn"); printf("\nRequires : name of file containing device directory\n"); printf(" & device name (include :)\n"); printf("enter 'done' for file name when finished\n"); iflg=0; while(iflg==0) { /* read file name and device */ printf("ENTER : file name and device (seperate with space) : "); gets(line); err=sscanf(line,"%s %s",&file,&dev); /* must test values entered */ /* finished ??? */ if(strncmp(file,"DONE",4)==0) { printf("\nFINISHED....\n"); iflg=1;} else if(strncmp(file,"done",4)==0) { printf("\nFINISHED....\n"); iflg=1;} /* test dev length .. does it end in a : ? */ else if((ipos=strlen(dev)) > 4) printf("Error... Too many characters in device name !!\n"); else if(dev[ipos-1] != ':') printf("Error... Device name does NOT end in a ':'\n"); /* open the file !!! */ else if((fpi=fopen(file,"rn"))==NULL) printf("Error... Cannot open file '%s' \n",file); /* if no errors ... setup name[] variable with device */ else { for(i=0;i100000 && big==0) { big=1; printf("\n*** TAPE FULL !!! %ld blocks\n",cum); } } } } if(big==1)printf("NOT ALL FILES DUMPED !!! Total %6ld blocks\n",cum); if(big==0)printf("All FILES TO BE DUMPED . Total %6ld blocks\n",cum); printf(" Total %6d files\n",files); }