home *** CD-ROM | disk | FTP | other *** search
- /*
- ** Test main program for MS-DOS diskette routines: read file
- */
-
- #include <stdio.h>
- #include "io.h"
- #include "msdos.h"
-
- main(argc,argv)
- int argc;
- char *argv[]; {
- register int i,j;
- directory *dp;
- FILE *f=stdout;
-
- if(argc!=3) {
- printf( "usage: read diskette_file [other_file|-]\n"
- "Filenames may have leading A: B: or\n"
- "imbedded periods, indicating spaces\n");
- exit(2);
- }
-
- for(i=0; j=argv[1][i]; i++)
- if(j=='.')
- argv[1][i]=' ';
- else if(j>='a' && j<='z')
- argv[1][i]-=32;
-
- if(argv[1][1]==':') {
- drive_number=*argv[1]-'A';
- argv[1]+=2;
- }
-
- disk_open();
-
- if(!(dp=find_dir(argv[1]))) {
- printf("No match for \"%11.11s\"\n",argv[1]);
- exit(1);
- }
-
- printf("Reading file \"%11.11s\" %02x %ld %04x/%04x\n",
- dp->filename,dp->attribute,dp->filesize,dp->date,dp->time);
-
- if((*argv[2]!='-' || argv[2][1]) && (!(f=fopen(argv[2],"w")))) {
- printf("Cannot open file \"%s\" for writing\n",argv[2]);
- exit(1);
- }
-
- file_open(dp);
-
- while((i=file_getc())!=EOF)
- putc(i,f);
-
- fclose(f);
- exit(0);
- }
-