diff options
author | victor <victor@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2004-11-22 16:03:14 +0800 |
---|---|---|
committer | victor <victor@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2004-11-22 16:03:14 +0800 |
commit | 466da544fda3aa6ed86480162b607e1a2ae6ec55 (patch) | |
tree | d672bba9618f0a4b51b137a34e2595a3772705d3 /mbbsd/file.c | |
parent | 4f9a777998858d0aea9ccb5daf390a54fece4923 (diff) | |
download | pttbbs-466da544fda3aa6ed86480162b607e1a2ae6ec55.tar pttbbs-466da544fda3aa6ed86480162b607e1a2ae6ec55.tar.gz pttbbs-466da544fda3aa6ed86480162b607e1a2ae6ec55.tar.bz2 pttbbs-466da544fda3aa6ed86480162b607e1a2ae6ec55.tar.lz pttbbs-466da544fda3aa6ed86480162b607e1a2ae6ec55.tar.xz pttbbs-466da544fda3aa6ed86480162b607e1a2ae6ec55.tar.zst pttbbs-466da544fda3aa6ed86480162b607e1a2ae6ec55.zip |
fix assess bug
some comments
git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2348 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
Diffstat (limited to 'mbbsd/file.c')
-rw-r--r-- | mbbsd/file.c | 36 |
1 files changed, 34 insertions, 2 deletions
diff --git a/mbbsd/file.c b/mbbsd/file.c index 2c9374bf..e1422713 100644 --- a/mbbsd/file.c +++ b/mbbsd/file.c @@ -2,6 +2,14 @@ #include "bbs.h" +/** + * file.c 是針對以"行"為單位的檔案所定義的一些 operation。 + **/ + +/** + * 傳回 file 檔的行數 + * @param file + */ int file_count_line(char *file) { FILE *fp; @@ -9,13 +17,22 @@ int file_count_line(char *file) char buf[200]; if ((fp = fopen(file, "r"))) { - while (fgets(buf, sizeof(buf), fp)) + while (fgets(buf, sizeof(buf), fp)) { + if (strchr(buf, '\n') == NULL) + continue; count++; + } fclose(fp); } return count; } +/** + * 將 string append 到檔案 file 後端 + * @param file 要被 append 的檔 + * @param string + * @return 成功傳回 0,失敗傳回 -1。 + */ int file_append_line(char *file, char *string) { FILE *fp; @@ -29,7 +46,12 @@ int file_append_line(char *file, char *string) } #ifndef _BBS_UTIL_C_ -/* Rename() is in kaede.c but not linked to util/ */ +/** + * 從檔案 file 中刪除 prefix 為 string 的每一行。(小心 race) + * @param file + * @param string + * @param case_sensitive 字串比對是否 case sensitive + */ int file_delete_line(char *file, char *string, int case_sensitive) { FILE *fp, *nfp = NULL; @@ -56,6 +78,9 @@ int file_delete_line(char *file, char *string, int case_sensitive) } #endif +/** + * 傳回檔案 file 中是否有 string 這個字串。 + */ int file_exist_record(char *file, char *string) { FILE *fp; @@ -72,6 +97,13 @@ int file_exist_record(char *file, char *string) return 0; } +/** + * 對每一筆 record 做 func 這件事。 + * @param file + * @param func 處理每筆 record 的 handler,為一 function pointer。 + * 第一個參數是檔案中的一行,第二個參數為 info。 + * @param info 一個額外的參數。 + */ int file_foreach_entry(char *file, int (*func)(char *, int), int info) { char line[80]; |