⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 telesum.c

📁 unix下进行电报传输的源码。采用信号灯技术避免文件冲突等等
💻 C
字号:
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <string.h>
#include "nfcnet.h"
void main()
{ char ffix[P_SENDOBJ][5]={0},buf[4096];
  long fnum[P_SENDOBJ+1]={0},i,j,k;
  long fnmx[P_SENDOBJ+1]={0};
  long fday[P_SENDOBJ+1]={0},tday[P_SENDOBJ]={0};
  long mon[12]={31,28,31,30,31,30,31,31,30,31,30,31};
  int iy1,im1,id1,iy2,im2,id2,iy,im,id;
  char fn[100],*bufp;
  FILE *fp,*fpo;
  if((fp=fopen("/nfcnet/sysd/fix_tab.dat","r"))==NULL)
  {
    printf("The file, /nfcnet/sysd/fix_tab.dat, is not found !\n");
    exit(0);
  }
  for(i=0;i<P_SENDOBJ;i++)
  { 
    if(fgets(ffix[i],5,fp)==NULL)
    {
      printf("The file, /nfcnet/sysd/fix_tab.dat, is error !\n");
      exit(0);
    }
    ffix[i][2]=(char)0;
  }
  fclose(fp);
  printf("Pls entry begin date [3i2] ");
  scanf("%ld%ld%ld",&iy1,&im1,&id1);
  printf("Pls entry  end  date [3i2] ");
  scanf("%ld%ld%ld",&iy2,&im2,&id2);
  fpo=fopen("telesum.out","w+");
  iy=iy1;im=im1;id=id1-1;
  do
  { 
    id++;
    if(id>mon[im-1])
    { id=id-mon[im-1];
      im++;
      if(im>12){im=1;iy++;}
    }
    printf("%2ld %3ld %3ld\n",iy,im,id);
    fnum[P_SENDOBJ]=0;
    for(i=0;i<P_SENDOBJ;i++)
    { fnum[i]=0;
      sprintf(fn,"/nfcnet/tele/%s%02d%02d%02d.tel%c",ffix[i],iy,im,id,0);
      tday[i]++;
      if((fp=fopen(fn,"r"))==NULL)continue;
      fday[i]++;
      for(;;)
      {
        bufp=fgets(buf,4096,fp);
        if(bufp==NULL)break;
        fnum[i]++;
      }
      fclose(fp);
      fnum[P_SENDOBJ]=fnum[P_SENDOBJ]+fnum[i];
      fnmx[i]=fnmx[i]+fnum[i];
    }
    fnmx[P_SENDOBJ]=fnmx[P_SENDOBJ]+fnum[P_SENDOBJ];
    for(i=0;i<P_SENDOBJ;i=i+8)
    { 
      fprintf(fpo,"%s %.5ld; ",ffix[i+0],fnum[i+0]);
      if(i+1<P_SENDOBJ)
      fprintf(fpo,"%s %.5ld; ",ffix[i+1],fnum[i+1]);
      if(i+2<P_SENDOBJ)
      fprintf(fpo,"%s %.5ld; ",ffix[i+2],fnum[i+2]);
      if(i+3<P_SENDOBJ)
      fprintf(fpo,"%s %.5ld; ",ffix[i+3],fnum[i+3]);
      if(i+4<P_SENDOBJ)
      fprintf(fpo,"%s %.5ld; ",ffix[i+4],fnum[i+4]);
      if(i+5<P_SENDOBJ)
      fprintf(fpo,"%s %.5ld; ",ffix[i+5],fnum[i+5]);
      if(i+6<P_SENDOBJ)
      fprintf(fpo,"%s %.5ld; ",ffix[i+6],fnum[i+6]);
      if(i+7<P_SENDOBJ)
      fprintf(fpo,"%s %.5ld;\n",ffix[i+7],fnum[i+7]);
    }
    fprintf(fpo,"\n%.2ld %.2ld %.2ld total is %6ld\n",iy,im,id,fnum[P_SENDOBJ]);
  }while((iy!=iy2)||(im!=im2)||(id!=id2));
  fprintf(fpo,"\n\n\n            *** This Node receiveing the telegram ***\n");
  fprintf(fpo,"                   (From %2ld %2ld%2ld to %2ld %2ld %2ld)\n\n",
         iy1,im1,id1,iy2,im2,id2);
  for(i=0;i<P_SENDOBJ;i=i+4)
  { 
    fprintf(fpo,"%s %.6ld %.3ld; ",ffix[i+0],fnmx[i+0],fday[i+0]);
    if(i+1<P_SENDOBJ)
    fprintf(fpo,"%s %.6ld %.3ld; ",ffix[i+1],fnmx[i+1],fday[i+1]);
    if(i+2<P_SENDOBJ)
    fprintf(fpo,"%s %.6ld %.3ld; ",ffix[i+2],fnmx[i+2],fday[i+2]);
    if(i+3<P_SENDOBJ)
    fprintf(fpo,"%s %.6ld %.3ld;\n",ffix[i+3],fnmx[i+3],fday[i+2]);
  }
  fprintf(fpo,"\n%.4ld days total is %6ld\n",tday[0],fnmx[P_SENDOBJ]);
  fclose(fpo);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -