home *** CD-ROM | disk | FTP | other *** search
/ rtsi.com / 2014.01.www.rtsi.com.tar / www.rtsi.com / OS9 / OSK / TELECOM / stg_v4.lzh / chop.c < prev    next >
C/C++ Source or Header  |  1994-11-11  |  968b  |  63 lines

  1. /*
  2.  * chop file in two parts at specific byte
  3.  *
  4.  * 93/08/15 StG - initially requested by paul jerkatis
  5. */
  6.  
  7. #define ERR (-1)
  8. extern int errno;
  9.  
  10. main(argc,argv)
  11. int argc;
  12. char **argv;
  13. {
  14.     int file,bytes,file1,file2;
  15.     long size;
  16.     char *buf;
  17.  
  18.     if (argc<5)
  19.     {
  20.         printf("use: chop (source-file) (bytes) (file1) (file2)\n");
  21.         exit(1);
  22.     }
  23.  
  24.     file=open(argv[1],1);
  25.     if (file==ERR)
  26.     {
  27.         printf("cant open %s\n",argv[1]);
  28.         exit(errno);
  29.     }
  30.  
  31.     size=_gs_size(file);
  32.     buf=malloc(size);
  33.     if (!buf)
  34.         exit(errno);
  35.  
  36.     errno=211;
  37.     if (read(file,buf,size)!=size)
  38.         exit(errno);
  39.  
  40.     bytes=atoi(argv[2]);
  41.     if (bytes>size)
  42.         exit(211);
  43.  
  44.     file1=creat(argv[3],3);
  45.     if (file==ERR)
  46.     {
  47.         printf("cant create %s\n",argv[3]);
  48.         exit(errno);
  49.     }
  50.  
  51.     file2=creat(argv[4],3);
  52.     if (file==ERR)
  53.     {
  54.         printf("cant create %s\n",argv[4]);
  55.         exit(errno);
  56.     }
  57.  
  58.     write(file1,buf,bytes);
  59.     write(file2,buf+bytes,size-bytes);
  60.     close(file1);
  61.     close(file2);
  62. }
  63.