packx.c

来自「unix下进行电报传输的源码。采用信号灯技术避免文件冲突等等」· C语言 代码 · 共 97 行

C
97
字号
#include <stdio.h>
#include "nfcnet.h"
void main(void)
{ int i,j,k;
  int iy1,im1,iy2,im2,iyy;
  FILE *fp,*fpsav;
  char fn[100]={0};
  printf("PLS entry begin year & month(YYYY MM)[2I] ");
  scanf("%d%d",&iy1,&im1);
  printf("PLS entry  end  year & month(YYYY MM)[2I] ");
  scanf("%d%d",&iy2,&im2);
  if ((im1>12)||(im1<1))
  {
    printf("%packx-E-Input month NO.(begin) error !\n");
  }
  else
  {
    if ((im2>12)||(im2<1))
    {
      printf("%packx-E-Input month NO.(end) error !\n");
    }
    else
    {
      if (iy1>iy2)
      {
        printf("%packx-E-Input year NO. error !\n");
      }
      else
      {
        if ((iy1==iy2)&&(im1>im2))
        {
          printf("%packx-E-Input month NO.(both relative) error !\n");
        }
        else
        {
          chdir("/nfcnet/tele");
          fp=fopen("packx.com","w+");
          for(i=iy1;i<=iy2;i++)
          { iyy=i;
            iyy=iyy-1900;
            for(j=im1;j<=im2;j++)
            { for(k=0;k<=3;k++)
              { if((j!=2)||(k!=3))
                fprintf(fp,
                "tar cvf tel%02d%02d%d.sav ./*%02d%02d%d*.tel\n",
                iyy,j,k,iyy,j,k);
              }
            }
          }
          for(i=iy1;i<=iy2;i++)
          { iyy=i;
            iyy=iyy-1900;
            for(j=im1;j<=im2;j++)
            { for(k=0;k<=3;k++)
              { if((j!=2)||(k!=3))
                fprintf(fp,
                "rm ./*%02d%02d%d*.tel\n",
                iyy,j,k,iyy,j,k);
              }
            }
          }
          for(i=iy1;i<=iy2;i++)
          { iyy=i;
            iyy=iyy-1900;
	    sprintf(fn,"tele%02d.sav",iyy);
            if((fpsav=fopen(fn,"r"))==NULL)
            {
              fprintf(fp,
              "tar cvf tele%02d.sav ./tel%02d*.sav\n",
              iyy,iyy);
            }
            else
            {
              fclose(fpsav);
              fprintf(fp,
              "tar xvf tele%02d.sav\n",iyy);
              fprintf(fp,
              "tar cvf tele%02d.sav ./tel%02d*.sav\n",
              iyy,iyy);
            }
          }
          for(i=iy1;i<=iy2;i++)
          { iyy=i;
            iyy=iyy-1900;
            fprintf(fp,
            "rm ./tel%02d*.sav\n",
            iyy,iyy);
          }
          fclose(fp);
          system("sh packx.com");
        }
      }
    }
  }
}

⌨️ 快捷键说明

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