#include <stdio.h>
#include <stdlib.h>
#define NO_OF_PROC 16
int main(int argc, char* argv[])
{
char fname[200],name[NO_OF_PROC][200];
FILE *fil_in, *fil_sort[NO_OF_PROC];
int i,nproc;
int src_proc,dst_proc,src_neu,dst_neu,preclassnum,w;
double del;
if(argc <3 ){fprintf(stderr,"USAGE:\n\tcrl fname(no.ext) nproc\n");exit(1);}
nproc=atoi(argv[2]);
if(nproc>NO_OF_PROC || nproc<1)
{fprintf(stderr,"nproc= %i> %i\n",nproc,NO_OF_PROC);exit(1);}
strcat(strcpy(fname,argv[1]),".link");
fil_in=fopen(fname,"r");
if(fil_in==NULL){fprintf(stderr,"fopen(%s) error\n",fname);exit(1);}
for(i=0;i<nproc;i++)
{
sprintf(name[i],"%s.dst.%i",argv[1],i);
fil_sort[i]=fopen(name[i],"w+");
if(fil_sort[i]==NULL){fprintf(stderr,"fopen(%s) error\n",name[i]);exit(1);}
}
while(!feof(fil_in))
{
fscanf(fil_in,"%i:%i %i:%i %i %lf %i\n",&src_proc,&src_neu,&dst_proc,&dst_neu,&preclassnum,&del,&w);
if(ferror(fil_in))
{fprintf(stderr,"fscanf error on input: %s.link\n",argv[1]);exit(1);}
fprintf(fil_sort[src_proc],"%i:%i %i:%i %i %lf %i\n",src_proc,src_neu,dst_proc,dst_neu,preclassnum,del,w);
}
fclose(fil_in);
strcat(strcpy(fname,argv[1]),".link1");
fil_in=fopen(fname,"w");
if(fil_in==NULL){fprintf(stderr,"fopen(%s) error\n",fname);exit(1);}
for(i=0;i<nproc;i++)
{
rewind(fil_sort[i]);
while(!feof(fil_sort[i]))
{
fscanf(fil_sort[i],"%i:%i %i:%i %i %lf %i\n",&src_proc,&src_neu,&dst_proc,&dst_neu,&preclassnum,&del,&w);
fprintf(fil_in,"%i:%i %i:%i %i %5.2f %i\n",src_proc,src_neu,dst_proc,dst_neu,preclassnum,del,w);
}
fclose(fil_sort[i]);
remove(name[i]);
}
fclose(fil_in);
return 0;
}