|
|
1.1 ! root 1: #include <stdio.h> ! 2: #include <sys/types.h> ! 3: #include <sys/stat.h> ! 4: ! 5: /* EMACS_MODES: c, !fill */ ! 6: ! 7: /* xusend -- Warren Montgomery 12/15/80 */ ! 8: ! 9: /* xusend calls usend, segmenting the list files sent so that each ! 10: * invocation of usend sends no more than 150,000 bytes. This is a ! 11: * temporary kludge, that really should be part of the standard ! 12: * usend command. */ ! 13: ! 14: /* Usage is: ! 15: * ! 16: * xusend "usend args" <files> ! 17: * ! 18: */ ! 19: ! 20: char *usend = "usend "; /* program to call */ ! 21: #define FLIMIT 100000 ! 22: #define ALIMIT 160000 ! 23: ! 24: char combuf[2048]; ! 25: ! 26: char * ! 27: strcat(cp,cp1) ! 28: ! 29: register char *cp; ! 30: register char *cp1; ! 31: { ! 32: while (*cp++ = *cp1++); ! 33: return(cp-1); ! 34: } ! 35: ! 36: main(argc,argv) ! 37: ! 38: int argc; ! 39: char **argv; ! 40: { ! 41: long fbytes = 0; ! 42: int filecount = 0; ! 43: int status; ! 44: struct stat statb; ! 45: char *bufptr; ! 46: char *savbuf; ! 47: ! 48: if (argc < 3) { ! 49: printf ("Usage is:\n\n"); ! 50: printf ("xusend \"usend args\" <files>\n\n"); ! 51: exit(0); ! 52: } ! 53: ! 54: savbuf = strcat(combuf,usend); ! 55: savbuf=strcat(savbuf,argv[1]); ! 56: argc-= 2; ! 57: argv+= 2; ! 58: ! 59: while (argc>0) { ! 60: ! 61: ! 62: /* process next block of files */ ! 63: ! 64: bufptr = savbuf; ! 65: fbytes = 0; ! 66: filecount = 0; ! 67: ! 68: while (argc && (fbytes < FLIMIT)) { ! 69: status = stat(*argv,&statb); ! 70: if (status != 0) { ! 71: printf ("Can't stat %s, ignoring it\n", *argv);; ! 72: argv++; ! 73: argc--; ! 74: } else { ! 75: fbytes += statb.st_size; ! 76: if ((fbytes < FLIMIT) || (filecount == 0)){ ! 77: *bufptr++ = ' '; ! 78: bufptr = strcat(bufptr,*argv); ! 79: argv++; ! 80: argc--; ! 81: filecount++; ! 82: if (fbytes >FLIMIT) { ! 83: printf ("File %s may be to big for usend\n", *argv); ! 84: } ! 85: } ! 86: } ! 87: } ! 88: if (filecount) { ! 89: printf("\n%s\n",combuf); ! 90: system (combuf); ! 91: } else { ! 92: printf ("File %s is too big for usend, ignoring it\n", *argv); ! 93: argv++; ! 94: argc--; ! 95: } ! 96: } ! 97: } ! 98:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.