home *** CD-ROM | disk | FTP | other *** search
/ Garbo / Garbo.cdr / pc / progrmng / dosfiles.lzh / dosfiles / write.c < prev    next >
Encoding:
C/C++ Source or Header  |  1990-11-29  |  976 b   |  55 lines

  1. /*
  2. **    Test main program for MS-DOS diskette routines: delete file
  3. */
  4.  
  5. #include    <stdio.h>
  6.  
  7. #include    "io.h"
  8. #include    "msdos.h"
  9.  
  10. main(argc,argv)
  11. int argc;
  12. char *argv[];    {
  13.     register int i,j;
  14.     directory *dp;
  15.     FILE *f=stdin;
  16.  
  17.     if(argc!=3)    {
  18.         printf(    "usage: write diskette_file [other_file|-]\n"
  19.             "Diskette filename may have leading A: B: or\n"
  20.             "imbedded periods, indicating spaces\n");
  21.         exit(2);
  22.     }
  23.  
  24.     if((*argv[2]!='-' || argv[2][1]) && (!(f=fopen(argv[2],"r"))))    {
  25.         printf("Cannot open file \"%s\" for reading\n",argv[2]);
  26.         exit(1);
  27.     }
  28.  
  29.     for(i=0; j=argv[1][i]; i++)
  30.         if(j=='.')
  31.             argv[1][i] = ' ';
  32.         else if(j>='a' && j<='z')
  33.             argv[1][i] -= 32;
  34.     if(argv[1][1]==':')    {
  35.         drive_number = *argv[1]-'A';
  36.         argv[1] += 2;
  37.     }
  38.  
  39.     disk_open();
  40.  
  41.     if(dp=file_create(argv[1]))
  42.         printf("Created file \"%s\"\n",argv[1]);
  43.     else    {
  44.         printf("Could not create file \"%s\"\n",argv[1]);
  45.         exit(1);
  46.     }
  47.  
  48.     while((i=getc(f))!=EOF)
  49.         file_putc(dp,i);
  50.  
  51.     file_close(dp);
  52.     fclose(f);
  53.     exit(0);
  54. }
  55.