■スレッドリストへ戻る■ 全部 1- 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 最新50
【2ちゃんねるビューア】 巡回機能の巻。Part3
- 422 :名無しさん@お腹いっぱい。 :02/03/25 05:51 ID:???
- 動作確認した。圧縮率は外からも指定可。
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <ctype.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/mman.h>
#include <zlib.h>
#ifndef MAP_FAILED
#define MAP_FAILED (void *)(-1)
#endif
char compress_flag[30];
void compress_one(const char *fname)
{
int fd;
void *buf;
fd = open(fname, O_RDONLY);
if (fd >= 0) {
struct stat st;
if (fstat(fd, &st) == 0) {
buf = (char *)mmap(NULL, st.st_size, PROT_READ, MAP_SHARED, fd, 0);
if (buf != MAP_FAILED) {
char gzname[256];
gzFile file;
sprintf(gzname, "%s.gz", fname);
file = gzopen(gzname, compress_flag);
if (file) {
gzwrite(file, buf, st.st_size);
gzclose(file);
}
munmap(buf, st.st_size);
}
}
close(fd);
}
}
void compress_file(const char *bbs, const char *fname)
{
char fnbuf[256];
sprintf(fnbuf, "%.200s/%.30s", bbs, fname);
compress_one(fnbuf);
}
int main(int ac, char **av)
{
int mode = 6;
++av, --ac;
if (ac == 2 && isdigit(*av[1])) {
mode = atoi(av[1]);
--ac;
}
sprintf(compress_flag, "wb%d", mode);
if (ac == 1) {
compress_file(*av, "index.html");
compress_file(*av, "subback.html");
compress_file(*av, "subject.txt");
}
return 0;
}
283KB
新着レスの表示
スレッドリストへ戻る 全部 前100 次100 最新50
0ch BBS 2004-10-30