Here is a small program I wrote because I needed to use it. It takes a file, and splits it into pieces, whose size is specified on the command line. I named it hack because: 1. It is. (A hack!). 2. It hacks the file into pieces brutally. 3. All the good names (cut, split) were taken. Share, read and enjoy. I'm putting it in the public domain. ----------------------------------------------------------- Moshe Zadka - moshez (at) math (dot) huji (dot) ac (dot) il What have YOU done today to promote Linux? I'm using 2.1.57 My moto: Signatures should not be longer then 4 lines.
#include <stdio.h> int main(int argc, char **argv) { char name[1024]; int size; int count; int c; FILE *fin; FILE *fout; if(argc<3) { fprintf(stderr, "Error usage\n"); exit(1); } size=atoi(argv[1]); fprintf(stderr, "size is %d\n", size); if((fin=fopen(argv[2], "r"))==NULL) { fprintf(stderr, "Error file\n"); exit(1); } fprintf(stderr, "opened %s\n", argv[2]); if(feof(fin)) fprintf(stderr, "Empty file\n"); for(count=0;!feof(fin);count++) { int i; sprintf(name, "%s.%03d", argv[2], count); fprintf(stderr, "opening %s\n", name); if((fout=fopen(name, "w"))==NULL) { fprintf(stderr, "Error out file\n"); exit(1); } fprintf(stderr, "opened %s\n", name); for(i=0;i<size;i++) { if((c=fgetc(fin))!=EOF) fputc(c, fout); else break; } fclose(fout); fprintf(stderr, "closed %s\n", name); } }