荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: jjk (pq), 信区: InstallBBS
标  题: [转载] Re: FB2000系统从SolarisX86移到Solaris Sparc?...(转寄)
发信站: 荔园晨风BBS站 (Thu Nov 29 10:35:03 2001), 转信

【 以下文字转载自 jjk 的信箱 】
【 原文由 jjk.bbs@bbs.pku.edu.cn 所发表 】
发信人: FeiRou.bbs@bbs.nju.edu.cn, 原信区: BBSDev
标  题: Re: FB2000系统从SolarisX86移到Solaris Sparc问题求救
发信站: 南京大学小百合站 (Tue Nov 27 16:09:22 2001), 站内信件

#include "bbs.h"
unsigned int endian(unsigned int x)
{

 return htonl(x);
}

struct userec old, new;

int main( void )
{
 int i, j;
 FILE *src, *dst;

 src = fopen(".PASSWDS", "rb");
 if(!src) {
 printf("you must put your old .PASSWDS into this directory.\n");
 exit(3);
 }
 dst = fopen(".PASSWDS.new", "wb");
 j = 0;
 for ( i = 0 ; ; i++ ) {
 if ( fread(&old,sizeof(old),1,src) <= 0 ) break;
 if ( strlen(old.userid) <= 0 ) continue;
 printf("Processing #%d userid: %s\n", i+1, old.userid);
 memset( &new, 0, sizeof( new ) );
 memcpy( &new, &old, sizeof(old));

 new.userid[IDLEN+1] = '\0';
 new.lasthost[15] = '\0';
 new.passwd[PASSLEN-1] = '\0';
 new.username[NAMELEN-1] = '\0';
 new.ident[NAMELEN-1] = '\0';
 new.termtype[15] = '\0';
      new.reginfo[STRLEN-17] = '\0';
      new.realname[NAMELEN-1] = '\0';
      new.address[STRLEN-1] = '\0';
      new.email[STRLEN-13] = '\0';
      new.userlevel = endian(old.userlevel);
      new.lastlogin = endian(old.lastlogin);
      new.firstlogin = endian(old.firstlogin);
      new.userdefine = endian(old.userdefine);
      new.numlogins = endian(old.numlogins);
      new.userdefine = endian(old.userdefine);
      new.numlogins = endian(old.numlogins);
      new.numposts = endian(old.numposts);
      new.stay = endian(old.stay);

      printf("  writing, sizeof(old)=%d sizeof(new)=%d ..",
         sizeof(old), sizeof(new));
      if ( !fwrite(&new, sizeof(new), 1, dst) ) {
         printf("failed!!\n");
         exit(0);
      } else {
         printf("done.\n");
      }
      j++;
   }
   fclose(src);
   fclose(dst);
   printf("done. total %d of %d users transfeerd\n",j ,i+1);
   printf("remember clean shm before replace new PASSWDS file!\n");
   return 0;
}

【 在 linton (霜林孤雁) 的大作中提到: 】
:    这个不是很熟
:    能不能贴一个转换程序出来,或寄到俺的信箱
:    谢谢
: 【 在 quickmouse (碰猫死翘翘) 的大作中提到: 】
: : x86和sparc的高低字节排列顺序不一样,呵呵,找找规律,写一个转换程序。
: : (以下引言省略 ... ...)


--
※ 来源:.南京大学小百合站 bbs.nju.edu.cn.[FROM: 202.117.97.88]

--
※ 转寄:·北大未名站 bbs.pku.edu.cn·[FROM: 210.39.3.50]
--
※ 转载:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.0.146]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店