亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? build_in.c

?? harvest是一個下載html網(wǎng)頁得機器人
?? C
?? 第 1 頁 / 共 5 頁
字號:
/* Copyright (c) 1994 Sun Wu, Udi Manber, Burra Gopal.  All Rights Reserved. *//* ./glimpse/index/build_in.c *//* --------------------------------------------------------------    build_index():  build an index list from a set of files.    INPUT: a set of file names	   char **name_list[];	   a partition table	   int p_table[];    OUTPUT: an index list;	   char *index_list;	   the index list is a char string as follows:	   each entry of the index list contains two parts:	   name and indices, where name is an ascii character string,           and indices is a list of short integer. (unsigned char)           We use newline as a 'record delimiter' (a 'record is logically	   a word associated with its indices), and WORD_END_MARK to separate	   a word from its list of indices (s.t. fscanf %s works).	   Since we restrict the max number of partitions to be 255.	   a byte is enough to represent the index value. Note that there	   cannot be a partition #ed '\n'.	   An example index list: (in logical view)           this 12 19 \n is 9 17 12 18 19 \n an 7 12 \n example 16 \n-----------------------------------------------------------------------*/#include "glimpse.h"#define debugt#define BINARY 1/* #define SW_DEBUG  the original sw output of index set *//* This flag must always be defined: it is used only in build_in.c *//* #define UDI_DEBUG  the original outputs of each indexed file *//* Some variables used throughout */#if	BG_DEBUGextern FILE  *LOGFILE; 	/* file descriptor for LOG output */#endif	/*BG_DEBUG*/extern FILE  *STATFILE;	/* file descriptor for statistical data about indexed files */extern FILE  *MESSAGEFILE;	/* file descriptor for important messages meant for the user */extern char  INDEX_DIR[MAX_LINE_LEN];extern char  sync_path[MAX_LINE_LEN];extern struct stat istbuf;extern struct stat excstbuf;extern struct stat incstbuf;void insert_h();void insert_index();extern int ICurrentFileOffset;extern int NextICurrentFileOffset;/* Some options used throughout */extern int OneFilePerBlock;extern int IndexNumber;extern int CountWords;extern int StructuredIndex;extern int InterpretSpecial;extern int total_size;extern int MAXWORDSPERFILE;extern int NUMERICWORDPERCENT;extern int AddToIndex;extern int DeleteFromIndex;extern int FastIndex;extern int BuildDictionary;extern int BuildDictionaryExisting;extern int CompressAfterBuild;extern int IncludeHigherPriority;extern int FilenamesOnStdin;extern int UseFilters;extern int ByteLevelIndex;extern int RecordLevelIndex;extern int StoreByteOffset;extern int rdelim_len;extern char rdelim[MAX_LINE_LEN];extern char old_rdelim[MAX_LINE_LEN];/* int IndexUnderscore; */extern int IndexableFile;extern int MAX_INDEX_PERCENT;extern int MAX_PER_MB;extern int I_THRESHOLD;extern int usemalloc;extern int BigHashTable;extern int AddedMaxWordsMessage;extern int AddedMixedWordsMessage;extern int  icount; /* count the number of my_malloc for indices structure */extern int  hash_icount; /* to see how much was added to the current hash table */extern int  save_icount; /* to see how much was added to the index by the current file */extern int  numeric_icount; /* to see how many numeric words were there in the current file */extern int num_filter;extern int filter_len[MAX_FILTER];extern CHAR *filter[MAX_FILTER];extern CHAR *filter_command[MAX_FILTER];extern int REAL_PARTITION, REAL_INDEX_BUF, MAX_ALL_INDEX, FILEMASK_SIZE;extern int mask_int[32];struct indices	*deletedlist = NULL;char **name_list[MAXNUM_INDIRECT];unsigned int *disable_list = NULL;int *size_list[MAXNUM_INDIRECT];	/* temporary area to store size of each file */extern int  p_table[MAX_PARTITION];int  p_size_list[MAX_PARTITION];	/* sum of the sizes of the files in each partition */int part_num;   /* number of partitions */extern int memory_usage;/* borrowd from getword.c */extern int PrintedLongWordWarning;extern int indexable_char[256];extern char *getword();extern int file_num;extern int old_file_num;extern int attr_num;extern int  bp;                          /* buffer pointer */extern unsigned char word[MAX_WORD_BUF];extern int FirstTraverse1;extern struct  indices *ip;extern int HashTableSize;struct token **hash_table; /*[MAX_64K_HASH];*/build_index(){	int	i;	if (AddToIndex || FastIndex) {		FirstTraverse1 = OFF;	}	if ((total_size < LIMIT_64K_HASH*1024*1024) || !BigHashTable) {		hash_table = (struct token **)my_malloc(sizeof(struct token *) * MAX_64K_HASH);		HashTableSize = MAX_64K_HASH;	}	else {		hash_table = (struct token **)my_malloc(sizeof(struct token *) * MAX_256K_HASH);		HashTableSize = MAX_256K_HASH;	}        build_hash();        /* traverse1(); ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ removed on oct/8/96, bgopal, to see if crazysegvs disappear on lec */        return;}/* ----------------------------------------------------------------------traverse()function: traverse the hash list of indices = a hash list is a array oflinked list, where every node in a linked list contains a word whosehash_value is the same.While traversing the hash list, traverse() output a stream of index list.It also frees the memory used in hash_table.------------------------------------------------------------------------*/#define CRAZYSEGV	0traverse(){    int numseencount = 0;    int numelements;    int numonline;    int  i, j, attribute;    struct token *tp, *tp_old;    struct indices *ip, *ip_old;#if	!CRAZYSEGV    FILE   *f_out;#else    unsigned char onechar[4];    unsigned char onestring[MAX_LINE_LEN];    int	f_out;#endif    char   s[MAX_LINE_LEN];    char   *word;    int	x = -1, y=0, diff, temp, even_words=1;	/* 0 is an even number */    int fputcerr; /* added by dgh 5-8-96 */#ifdef	SW_DEBUG    printf("in traverse()\n");#endif    sprintf(s, "%s/%s", INDEX_DIR, I2);#if	!CRAZYSEGV    if ((f_out = fopen(s, "w")) == NULL) {#else    if ((f_out = open(s, O_WRONLY|O_CREAT|O_TRUNC, 0600)) == -1) {#endif	fprintf(stderr, "Cannot open %s for writing\n", s);	exit(2);    }    for(i=0; i<HashTableSize; i++) {        if(hash_table[i] == NULL) continue;        tp = hash_table[i];        tp_old = tp;        while(tp != NULL) {   /* traverse the token list */	    word = tp->word;            while(*word != '\0') {  /* copy the word to output */#if	!CRAZYSEGV		fputcerr=fputc(*word++, f_out);/* change from putc to fputc */				       /* by dgh, 8-5-96 */#else		write(f_out, word, 1);		word++;#endif            }	    /* Look for stop lists */	    if (OneFilePerBlock && !ByteLevelIndex && (file_num > MaxNum8bPartition) && (tp->totalcount > (file_num * MAX_INDEX_PERCENT / 100))) {#if	!CRAZYSEGV		putc(ALL_INDEX_MARK, f_out);#else		onechar[0] = ALL_INDEX_MARK;		write(f_out, onechar, 1);#endif		if (StructuredIndex) {  /* force big-endian as usual */		    attribute = encode16b(tp->attribute);#if	!CRAZYSEGV		    putc((attribute&0x0000ff00)>>8, f_out);		    putc((attribute&0x000000ff), f_out);#else		    onechar[0] = (attribute&0x0000ff00)>>8;		    onechar[1] = (attribute&0x000000ff);		    write(f_out, onechar, 2);#endif		}#if	!CRAZYSEGV		putc(DONT_CONFUSE_SORT, f_out);#else		onechar[0] = DONT_CONFUSE_SORT;		write(f_out, onechar, 1);#endif		goto next_token;	    }	    else if (ByteLevelIndex && (tp->totalcount > ( (((total_size>>20) > 0) && ((total_size>>20)*MAX_PER_MB < MAX_ALL_INDEX)) ? ((total_size>>20) * MAX_PER_MB) : MAX_ALL_INDEX) )) {#if	!CRAZYSEGV		putc(ALL_INDEX_MARK, f_out);#else		onechar[0] = ALL_INDEX_MARK;		write(f_out, onechar, 1);#endif		if (StructuredIndex) {  /* force big-endian as usual */		    attribute = encode16b(tp->attribute);#if	!CRAZYSEGV		    putc((attribute&0x0000ff00)>>8, f_out);		    putc((attribute&0x000000ff), f_out);#else		    onechar[0] = (attribute&0x0000ff00)>>8;		    onechar[1] = (attribute&0x000000ff);		    write(f_out, onechar, 2);#endif		}#if	!CRAZYSEGV		putc(DONT_CONFUSE_SORT, f_out);#else		onechar[0] = DONT_CONFUSE_SORT;		write(f_out, onechar, 2);#endif		goto next_token;	    }#if	!CRAZYSEGV	    putc(WORD_END_MARK, f_out);#else	    onechar[0] = WORD_END_MARK;	    write(f_out, onechar, 1);#endif	    if (StructuredIndex) {  /* force big-endian as usual */		attribute = encode16b(tp->attribute);#if	!CRAZYSEGV		putc((attribute&0x0000ff00)>>8, f_out);		putc((attribute&0x000000ff), f_out);#else		    onechar[0] = (attribute&0x0000ff00)>>8;		    onechar[1] = (attribute&0x000000ff);		    write(f_out, onechar, 2);#endif	    }	    numonline = 0;	    x = -1;	    y = 0;	    even_words = 1;	    ip = tp->ip;	/* traverse the indices list */            ip_old = ip;	    numelements = 0;            while(ip != NULL) {		numelements ++;		if (CountWords) {#if	!CRAZYSEGV		    fprintf(f_out, "%d", ip->offset[0]);#else		    sprintf(onestring, "%d", ip->offset[0]);		    write(f_out, onestring, strlen(onestring));#endif		}		else {		    if (ByteLevelIndex) {			for (j=0; j < INDEX_SET_SIZE; j++) {			    if (ip->index[j] == INDEX_ELEM_FREE) continue;			    if ((ip->offset[j] <= y) && (y > 0) && (x == ip->index[j])) {	/* consecutive offsets not increasing in same file! */				fprintf(stderr, "ignoring (%d, %d) > (%d, %d)\n", x, y, ip->index[j], ip->offset[j]);				continue;	/* error! */			    }			    if (numonline >= MAX_PER_LINE) {				/* terminate current line since it is too late to put ALL_INDEX_MARK now ... Unfortunate since sort is screwedup */#if	!CRAZYSEGV				putc('\n', f_out);#else			        onechar[0] = '\n';			        write(f_out, onechar, 1);#endif#if	0				putc('\n', stdout);#endif	/*0*/				word = tp->word;				while(*word != '\0') {  /* copy the word to output */#if	!CRAZYSEGV				    putc(*word++, f_out);#else				    write(f_out, word, 1);				    word ++;#endif				}#if	!CRAZYSEGV				putc(WORD_END_MARK, f_out);#else			        onechar[0] = WORD_END_MARK;			        write(f_out, onechar, 1);#endif				if (StructuredIndex) {  /* force big-endian as usual */				    attribute = encode16b(tp->attribute);#if	!CRAZYSEGV				    putc((attribute&0x0000ff00)>>8, f_out);				    putc((attribute&0x000000ff), f_out);#else				    onechar[0] = (attribute&0x0000ff00)>>8;				    onechar[1] = (attribute&0x000000ff);				    write(f_out, onechar, 2);#endif				}				numonline = 0;				x = -1;	/* to force code below to output it as if it is a fresh file */				y = 0;	/* must output first offset as is, rather than difference */			    }			    if (x != ip->index[j]) {				if (x != -1) {				    temp = encode8b(0);#if	!CRAZYSEGV				    putc(temp, f_out);	/* can never ordinarily happen since ICurrentFileOffset is always ++d => delimiter (unless RecordLevelIndex) */#else				    onechar[0] = temp;				    write(f_out, onechar, 1);#endif				}				if (file_num <= MaxNum8bPartition) {				    x = encode8b(ip->index[j]);#if	!CRAZYSEGV				    putc(x&0x000000ff, f_out);#else				    onechar[0] = x&0x000000ff;				    write(f_out, onechar, 1);#endif				}				else if (file_num <= MaxNum16bPartition) {				    x = encode16b(ip->index[j]);#if	!CRAZYSEGV				    putc((x&0x0000ff00)>>8, f_out);				    putc(x&0x000000ff, f_out);#else				    onechar[0] = (x&0x0000ff00)>>8;				    onechar[1] = x&0x000000ff;				    write(f_out, onechar, 2);#endif				}				else {				    x = encode24b(ip->index[j]);#if	!CRAZYSEGV				    putc((x&0x00ff0000)>>16, f_out);				    putc((x&0x0000ff00)>>8, f_out);				    putc(x&0x000000ff, f_out);#else				    onechar[0] = (x&0x00ff0000)>>16;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产99一区视频免费| 亚洲欧洲韩国日本视频| 日韩不卡一区二区三区| 欧美一区二区三区免费大片 | 性做久久久久久久免费看| 色天使色偷偷av一区二区| 一区二区三区精品在线| 久久一区二区三区国产精品| 久久精品一区四区| 国产成人免费视频网站高清观看视频 | 久久精品二区亚洲w码| 亚洲国产wwwccc36天堂| 国产精品久久久久久久岛一牛影视| 亚洲男同性视频| 蜜臀久久99精品久久久画质超高清| 国产精品一区二区久久不卡| 欧美性生活久久| 亚洲色图视频网| 99精品国产99久久久久久白柏| 国产精品一区二区黑丝| 国产精品一区二区在线看| 国产精品亚洲第一| jlzzjlzz国产精品久久| 亚洲最快最全在线视频| 精品少妇一区二区三区在线播放| 国产精品亚洲一区二区三区妖精| 中文字幕一区二区三中文字幕| 欧美调教femdomvk| 国产一区二区看久久| 亚洲蜜臀av乱码久久精品蜜桃| 91.麻豆视频| 成人免费的视频| 麻豆91免费看| 一区二区不卡在线视频 午夜欧美不卡在| 91精品国产综合久久久蜜臀粉嫩 | 国产精品久久久久久久久动漫 | 色一情一伦一子一伦一区| 日韩av一级片| 亚洲三级小视频| 337p粉嫩大胆色噜噜噜噜亚洲| 色综合色综合色综合 | 日韩国产精品大片| 亚洲视频在线观看三级| 久久久久久久综合日本| 7777精品伊人久久久大香线蕉的| 成人开心网精品视频| 欧美aaa在线| 亚洲大片一区二区三区| 国产精品久久久久久久久久久免费看 | 亚洲一区二区三区影院| 国产精品美女久久久久久| 精品粉嫩aⅴ一区二区三区四区| 色哟哟一区二区在线观看| 成人性生交大片免费看在线播放| 久久精品国产免费| 日韩精品电影一区亚洲| 亚洲资源中文字幕| 亚洲男人的天堂网| 国产精品久久久久aaaa樱花| 久久久美女毛片| 日韩午夜电影在线观看| 在线综合视频播放| 欧美精品久久天天躁| 色诱视频网站一区| 一本久久综合亚洲鲁鲁五月天 | 亚洲一卡二卡三卡四卡五卡| 亚洲欧美区自拍先锋| 国产精品人妖ts系列视频| 亚洲国产精品t66y| 亚洲欧洲综合另类| 亚洲日本va在线观看| 1024国产精品| 亚洲人成网站在线| 亚洲免费观看高清完整版在线| 亚洲欧美日韩中文字幕一区二区三区| 国产蜜臀av在线一区二区三区| 久久综合久久综合九色| 久久精品亚洲精品国产欧美| 2017欧美狠狠色| 日韩高清中文字幕一区| 午夜精品影院在线观看| 日韩成人av影视| 久久国产精品露脸对白| 国产综合色产在线精品| 高清视频一区二区| 91美女蜜桃在线| 欧美精品一级二级| 精品日韩在线观看| 欧美激情一区二区三区在线| **欧美大码日韩| 亚洲va韩国va欧美va| 成人网页在线观看| 丝袜a∨在线一区二区三区不卡| 欧美国产成人精品| 中文字幕日本乱码精品影院| 一区二区三区不卡视频| 亚欧色一区w666天堂| 麻豆精品久久久| 丰满白嫩尤物一区二区| 欧美在线你懂得| 欧美sm美女调教| 成人免费小视频| 婷婷中文字幕一区三区| 黄色日韩三级电影| 在线视频国产一区| 精品捆绑美女sm三区| 中文字幕一区二区不卡| 日日夜夜免费精品| 波多野结衣精品在线| 欧美日韩国产三级| 日本一区二区三区国色天香| 日韩伦理电影网| 蜜乳av一区二区| 色综合久久久久综合99| 精品嫩草影院久久| 亚洲一区中文日韩| 国产成人夜色高潮福利影视| 欧美三级日韩三级| 国产三级精品在线| 不卡视频一二三| 欧美军同video69gay| 国产视频一区二区三区在线观看| 亚洲自拍偷拍图区| 国产精品亚洲综合一区在线观看| 色狠狠av一区二区三区| 久久婷婷成人综合色| 亚洲第一在线综合网站| 国产精品一二三四| 欧美精品日韩精品| 有坂深雪av一区二区精品| 国产精品18久久久久久久网站| 在线观看成人小视频| 国产精品私人影院| 另类中文字幕网| 欧美日韩成人综合天天影院| 中文字幕中文在线不卡住| 极品尤物av久久免费看| 欧美军同video69gay| 洋洋成人永久网站入口| eeuss鲁一区二区三区| 精品欧美一区二区三区精品久久| 亚洲成人免费在线| 99免费精品在线观看| 精品成人a区在线观看| 日韩黄色一级片| 欧美日本一区二区三区| 一区二区在线电影| 成人h精品动漫一区二区三区| 欧美电影免费观看高清完整版在| 亚洲国产一区二区三区| 色香蕉成人二区免费| 亚洲天堂成人网| www.综合网.com| 亚洲欧洲三级电影| 成人黄色一级视频| 国产精品视频第一区| 国产成人在线电影| 久久久久国产免费免费| 狠狠网亚洲精品| 精品久久国产97色综合| 老司机午夜精品99久久| 日韩视频免费直播| 免费成人在线观看| 日韩精品一区二区三区蜜臀| 日本v片在线高清不卡在线观看| 欧美日本一道本在线视频| 亚洲成人av福利| 亚洲蜜臀av乱码久久精品蜜桃| av一区二区三区四区| 亚洲欧美日韩中文播放| 在线免费不卡视频| 日韩精品一级二级| 91麻豆精品91久久久久同性| 欧美a一区二区| 久久久久久9999| av在线一区二区三区| 一区二区视频在线看| 欧美日韩国产123区| 久久99九九99精品| 中文字幕+乱码+中文字幕一区| 成人久久18免费网站麻豆| 亚洲乱码国产乱码精品精的特点 | 成人激情免费视频| 一区二区三区日韩精品视频| 欧美综合视频在线观看| 奇米精品一区二区三区在线观看| www国产精品av| av在线综合网| 视频一区欧美精品| 精品入口麻豆88视频| 成人手机在线视频| 中文字幕在线视频一区| 在线观看视频一区二区| 乱中年女人伦av一区二区| 欧美高清在线视频| 欧美日韩精品一二三区| 国内精品在线播放| 亚洲欧美日韩国产综合| 欧美电影免费观看高清完整版在线| 国产aⅴ精品一区二区三区色成熟|