Re: [问题] 编辑功能

楼主: jai166 (荣耀 尊绝 不凡 台科)   2008-09-24 03:26:50
现在回这篇,似乎太慢了XD
想问大家几个问题
1. 请问使用这一堆link 会不会产生很多的垃圾档案呢?
即使档案占的空间还是那一块 但档案配置表会比较浪费一些吧!?
若是这样 浪费的空间会不会很可观?
2. 还有为什么 WDBBS 及 itoc 板的都是使用 hard link 达成连结的效果?
为何不采用 symbolic link 来达成呢? 两者的优缺点为何可以麻烦大大解释吗?
另一方面 本站目前想增加这两个功能
a. 匿名文章查使用者代码的方法
b. 类似PTT的 "~" "+" 推文标示功能
但是目前本站的 fileheader 长度不足(如下所示)
╭───────────────────────────────────╮
│ struct fileheader │
│ { │
│ char filename[FNLEN - 1]; /* M.9876543210.A */ │
│ char recommend; /* 推文纪录 */ │
│ char savemode; /* file save mode */ │
│ char owner[IDLEN + 2]; /* uid[.] */ │
│ char date[6]; /* [02/02] or space(5) */ │
│ char title[TTLEN + 1]; │
│ uschar filemode; /* must be last field @ boards.c */ │
│ }; │
╰───────────────────────────────────╯
还有目前本站在修改文章时不会更动档名,档名是固定的
关于 a. 目前想到的处理方式
1) 取消掉匿名板自订名称的功能,用 owner 来放 uid
2) 开一个新档案,记录各 M.9876543210.A 所对应到的 uid 及其他欲新增的功能
3) 更动 fileheader 的结构(目前想到可能要更动的 .DIR 有看板 精华区 信箱)
关于 b. 目前想到的处理方式
1) char date[] 拿来放:
改成几个 time_t 不过一般电脑 time_t 是 4 Byte,似乎只能放一个
再者可能须修改相当多的函式(目前只想到文章列表呈现这部分而已)
配合之前修掉stamp的bug,日后日期就用 filename 来产生*
而推文标示函式就检查这里(同 PTT 的 modified )
不过 *的部分 不知道会给效能带来多大的影响
2) 同 a. 2) 开一个新档案,记录
3) 同 a. 3) 更动 fileheader 的结构
所以...
3. 想问大家对于这几种方式的看法如何?或是有更好的方法?
※ 引述《[email protected] (最爱笨小史的分子)》之铭言:
: ※ 引述《[email protected] (荣耀 尊绝 不凡 台科)》之铭言:
: > 我是热带鱼天堂(tropic.med.kmu.edu.tw)的站长群之一jai166
: > 敝站BBS是使用 WDBBS v1.34r
: > 之后程式码已经由历届站长大幅更新过了
: > 有些功能和原始WDBBS有蛮大的差异
: > 我想问一下 在使用 edit_post() 后
: > 程式会用stampfile产生一个新档案 之后再unlink掉原来的文章
: 有个方法
: 把旧档作成新档的link
: 可以顺便解决石头文的问题
: > 为什么要这么做呢?
: > 最近敝站参考了 hrs113355 前辈所分享的置底文程式码
: > ( http://hrs.ckeisc.org/blog/post/121 ,谢谢hrs113355的分享)
: > 由于 link() 一直出问题,之后便直接把 mhdr 的 filename 指向原档案
: 这样会出问题
是的,到暑假才发现在修文后不会有标示...
: > 不使用 stampfile 和 link 了,但又产生新的问题(编辑文章后会变石头)
: > 目前想到的解法是 stampfile 后,将新档案更名旧档案的名称
: > 同时将 fhdr 的 filename 指向旧档名
: > 所以想问问 edit_post() 的原理
: > 谢谢各位大大

Links booklink

Contact Us: admin [ a t ] ucptt.com