refriend2.c
上传用户:minyiyu
上传日期:2018-12-24
资源大小:864k
文件大小:2k
源码类别:

Telnet服务器

开发平台:

Unix_Linux

  1. #include "bbs.h"
  2. struct oldfriend {
  3.         char id[13];
  4.         char exp[15];
  5. };
  6. struct newfriend
  7. {
  8.         char id[13];
  9.         char exp[40];
  10. };
  11. int
  12. report()
  13. {
  14.         return;
  15. }
  16. int
  17. transfer(uid)
  18. char *uid;
  19. {
  20.     struct oldfriend fh;
  21.     struct newfriend nfh;
  22.     char fname[80];
  23.     char dname[80];
  24.     char genbuf[120];
  25.     FILE *fp, *fp2;
  26.     memset(&fh,0,sizeof(struct oldfriend));
  27.     memset(&nfh,0,sizeof(struct newfriend));
  28.     sprintf( fname, "/home/bbs/home/%c/%s/friends",toupper(uid[0]),uid);
  29.     sprintf( dname, "/home/bbs/home/%c/%s/friends.new",toupper(uid[0]),uid);
  30.     if ((fp = fopen(fname, "rb")) == NULL) {
  31.         return 0;
  32.     }
  33.     if ((fp2 = fopen(dname, "wb")) == NULL) {
  34.         return 0;
  35.     }
  36.     while(1)
  37.     {
  38.       if(fread(&fh,sizeof(fh),1,fp)<=0) break;    
  39.       strcpy(nfh.id,fh.id);
  40.       strcpy(nfh.exp,fh.exp);
  41.       append_record(dname,&nfh,sizeof(nfh));
  42.     }
  43.     fclose(fp);
  44.     fclose(fp2);
  45.     sprintf(genbuf,"chown bbs.bbs %s",dname);
  46.     system(genbuf);
  47.     sprintf(genbuf,"mv -f %s %s",dname,fname);
  48.     system(genbuf);
  49.     return 1;
  50. }
  51. main()
  52. {
  53.         FILE *rec;
  54.         int i=0;
  55.         struct userec user;
  56.         rec=fopen("/home/bbs/.PASSWDS","rb");
  57.         printf("Friends Records Transfering to FB2.63M...");
  58.         while(1)
  59.         {
  60.                 if(fread(&user,sizeof(user),1,rec)<=0) break;
  61.                 if(user.numlogins<=0)
  62.                         continue;
  63.                 if(transfer(user.userid)==1)
  64.                 {
  65.                         printf("%.12s Transferredn",user.userid);
  66.                 }else
  67.                         printf("%.12s No overrides File...n",user.userid);
  68.                 i++;
  69.         }
  70.         printf("n%d Friends Records Tranferred to FB2.63M...n",i);
  71.         fclose(rec);
  72. }