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