fileheader

看板PttCurrent作者時間21年前 (2004/12/06 18:41), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/5 (看更多)
由於 hkday 已改用了重新編制的 fileheader, 而 cptt 的版本也有了不同, 且列如下: ptt (April) ptt (Dec) hkday(Dec) ======================================================================== sizeof(fileheader_t) 128 bytes 128 bytes 128 bytes fhdr.filename 1 - 33 1 - 33 1 - 33 fhdr.recommend 34 34 34 fhdr.owner 35 - 48 35 - 48 35 - 48 fhdr.date 49 - 54 (char) 49 - 54 (char) 49 - 52 (time_t) [reserved pad] -- -- 53 - 54 fhdr.title 55 - 119 55 - 119 55 - 119 [alignment pad] 120 120 120 (PostType) fhdr.money 121- 124 121- 124 -- fhdr.anon_uid -- 121- 124 121- 124 fhdr.vote_limits.posts -- 121 -- fhdr.vote_limits.logins -- 122 -- fhdr.vote_limits.pad -- 123- 124 -- fhdr.refer.ref -- (121 - 124) -- fhdr.refer.flag -- (124) -- fhdr.filemode 125 (uchar) 125 (uchar) 125-128 (uint) [alignment pad] 126 - 128 126 - 128 -- ======================================================================== 代碼比較. ======================================================================== #define TTLEN 64 /* Length of title */ #define FNLEN 33 /* Length of filename */ #define IDLEN 12 /* Length of bid/uid */ typedef struct fileheader_hkday { char filename[FNLEN]; /* M.9876543210.A 33byte 33byte*/ char recommend; /* important level 1byte 34byte*/ char owner[IDLEN + 2]; /* uid[.] 14byte 48byte*/ time_t date; /* timestamp 4byte 52byte*/ char pad1[2]; /* for post type 2byte 54byte*/ char title[TTLEN + 1]; /* title on board 65byte 119byte*/ char pad2; /* for post type 1byte 120byte*/ int money; /* for hidden post 4byte 124byte*/ unsigned filemode; /* extended filemode 4byte 128byte*/ } fileheader_hkday; typedef struct fileheader_pttold { char filename[FNLEN]; /* M.9876543210.A */ char recommend; /* important level */ char owner[IDLEN + 2]; /* uid[.] */ char date[6]; /* [02/02] or space(5) */ char title[TTLEN + 1]; int money; /* rocker: if bit32 on ==> reference */ unsigned char filemode; /* must be last field @ boards.c */ } fileheader_pttold; typedef struct fileheader_pttnew { char filename[FNLEN]; /* M.9876543210.A */ char recommend; /* important level */ char owner[IDLEN + 2]; /* uid[.] */ char date[6]; /* [02/02] or space(5) */ char title[TTLEN + 1]; union { int money; int anon_uid; /* different order to match alignment */ #ifdef _BIG_ENDIAN struct { unsigned char pad[2]; /* money & 0xffff0000 */ unsigned char logins; /* money & 0xff00 */ unsigned char posts; /* money & 0xff */ } vote_limits; struct { unsigned int flag:1; unsigned int ref:31; } refer; #else struct { unsigned char posts; /* money & 0xff */ unsigned char logins; /* money & 0xff00 */ unsigned char pad[2]; /* money & 0xffff0000 */ } vote_limits; struct { unsigned int ref:31; unsigned int flag:1; } refer; #endif } multi; /* rocker: if bit32 on ==> reference * / /* XXX dirty, split into flag and money if money of each file is less than 16bit? */ unsigned char filemode; /* must be last field @ boards.c */ } fileheader_pttnew; -- ※ 發信站: 香港地(hkday.net) ◆ From: 61.238.143.229
文章代碼(AID): #11j3TJ00 (PttCurrent)
文章代碼(AID): #11j3TJ00 (PttCurrent)