[過去ログ] bbs.cgi 再開発プロジェクト (1001レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
256(1): 名無しさん@お腹いっぱい。 03/05/20 12:51 ID:itSoBR7s(1/5) AAS
static void update_db(const char *proxy, const char *db)
{
FILE *src = fopen(proxy, "r");
FILE *dst = fopen(db, "w+");
char line[IP_LENGTH + 1];
char **list = NULL;
int i, list_length = 0;
while (fgets(line, IP_LENGTH, src) != NULL) {
char *reverse = (char *) malloc(IP_LENGTH);
int length = strlen(line);
memset(reverse, '\0', IP_LENGTH);
if (length > 1 && line[length - 1] == '\n')line[length - 1] = '\0';
strreverse(reverse, line);
list = realloc(list, (list_length + 1) * sizeof(char*));
list[list_length++] = reverse;
}
qsort(list, list_length, sizeof(char*),
(int (*)(const void *, const void *)) &qsort_strcmp);
for (i = 0; i < list_length; ++i) {
fwrite(list[i], 1, IP_LENGTH, dst);
free(list[i]);
}
fclose(src);fclose(dst);
free(list);
}
static void update_db_if_need(const char *proxy, const char *db)
{
struct stat st;
time_t update;
stat(proxy, &st);update = st.st_mtime;
if (stat(db, &st) < 0 || update > st.st_mtime)
update_db(proxy, db);
}
static __inline__ int stripcmp(const char *ip, const char *jp)
{
for (; *ip == *jp; ++ip, ++jp)
if (*ip == '\0')return 0;
return (*jp == '\0') ? 0 : ((*ip < *jp) ? -1 : 1);
}
上下前次1-新書関写板覧索設栞歴
あと 745 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.009s