#include #include void usage(void) { printf(" Usage :\n"); printf("FS infile outfile1 outfile2 [length]\n"); printf(" (length default=1/2 of infile)\n"); exit(0); } void error(byte *m){ printf("Error:"); print(m); exit(0); }; word main(byte argc,byte **args) { int hi,ho1,ho2,b; dword len,a; byte buf[2048]; printf("File Splitter V 1.01 32bit by:Peter Quiring\n"); if ((argc>5)||(argc<4)) usage(); hi=open(args[1],O_RDONLY|O_BINARY); if (hi==-1) error("Opening infile"); a=filelength(hi); if (argc==5) { len=atoi(args[4]); if (len>a) error("Invalid length"); }else len=(int)(a / 2); ho1=creat(args[2],FA_ARCH); if (ho1==-1) error("Opening outfile1"); ho2=creat(args[3],FA_ARCH); if (ho2==-1) error("Opening outfile2"); a=0; b=1; do{ if (len-a>2048) b=read(hi,buf,2048); else b=read(hi,buf,len-a); if (b==-1) error("Reading infile"); b=write(ho1,buf,b); if (b==-1) error("Writing outfile1"); a+=b; }while (a