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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? progc

?? Best algorithm for LZW ..C language
??
?? 第 1 頁 / 共 3 頁
字號:
			    exit(1);			}			maxbits = atoi(*argv);			goto nextarg;		    case 'c':			zcat_flg = 1;			break;		    case 'q':			quiet = 1;			break;		    default:			fprintf(stderr, "Unknown flag: '%c'; ", **argv);			Usage();			exit(1);		}	    }	}	else {		/* Input file name */	    *fileptr++ = *argv;	/* Build input file list */	    *fileptr = NULL;	    /* process nextarg; */	}	nextarg: continue;    }    if(maxbits < INIT_BITS) maxbits = INIT_BITS;    if (maxbits > BITS) maxbits = BITS;    maxmaxcode = 1 << maxbits;    if (*filelist != NULL) {	for (fileptr = filelist; *fileptr; fileptr++) {	    exit_stat = 0;	    if (do_decomp != 0) {			/* DECOMPRESSION */		/* Check for .Z suffix */		if (strcmp(*fileptr + strlen(*fileptr) - 2, ".Z") != 0) {		    /* No .Z: tack one on */		    strcpy(tempname, *fileptr);		    strcat(tempname, ".Z");		    *fileptr = tempname;		}		/* Open input file */		if ((freopen(*fileptr, "r", stdin)) == NULL) {			perror(*fileptr); continue;		}		/* Check the magic number */		if (nomagic == 0) {		    if ((getchar() != (magic_header[0] & 0xFF))		     || (getchar() != (magic_header[1] & 0xFF))) {			fprintf(stderr, "%s: not in compressed format\n",			    *fileptr);		    continue;		    }		    maxbits = getchar();	/* set -b from file */		    block_compress = maxbits & BLOCK_MASK;		    maxbits &= BIT_MASK;		    maxmaxcode = 1 << maxbits;		    if(maxbits > BITS) {			fprintf(stderr,			"%s: compressed with %d bits, can only handle %d bits\n",			*fileptr, maxbits, BITS);			continue;		    }		}		/* Generate output filename */		strcpy(ofname, *fileptr);		ofname[strlen(*fileptr) - 2] = '\0';  /* Strip off .Z */	    } else {					/* COMPRESSION */		if (strcmp(*fileptr + strlen(*fileptr) - 2, ".Z") == 0) {		    	fprintf(stderr, "%s: already has .Z suffix -- no change\n",			    *fileptr);		    continue;		}		/* Open input file */		if ((freopen(*fileptr, "r", stdin)) == NULL) {		    perror(*fileptr); continue;		}		stat ( *fileptr, &statbuf );		fsize = (long) statbuf.st_size;		/*		 * tune hash table size for small files -- ad hoc,		 * but the sizes match earlier #defines, which		 * serve as upper bounds on the number of output codes. 		 */		hsize = HSIZE;		if ( fsize < (1 << 12) )		    hsize = min ( 5003, HSIZE );		else if ( fsize < (1 << 13) )		    hsize = min ( 9001, HSIZE );		else if ( fsize < (1 << 14) )		    hsize = min ( 18013, HSIZE );		else if ( fsize < (1 << 15) )		    hsize = min ( 35023, HSIZE );		else if ( fsize < 47000 )		    hsize = min ( 50021, HSIZE );		/* Generate output filename */		strcpy(ofname, *fileptr);#ifndef BSD4_2		/* Short filenames */		if ((cp=rindex(ofname,'/')) != NULL)	cp++;		else					cp = ofname;		if (strlen(cp) > 12) {		    fprintf(stderr,"%s: filename too long to tack on .Z\n",cp);		    continue;		}#endif  /* BSD4_2		Long filenames allowed */		strcat(ofname, ".Z");	    }	    /* Check for overwrite of existing file */	    if (overwrite == 0 && zcat_flg == 0) {		if (stat(ofname, &statbuf) == 0) {		    char response[2];		    response[0] = 'n';		    fprintf(stderr, "%s already exists;", ofname);		    if (foreground()) {			fprintf(stderr, " do you wish to overwrite %s (y or n)? ",			ofname);			fflush(stderr);			read(2, response, 2);			while (response[1] != '\n') {			    if (read(2, response+1, 1) < 0) {	/* Ack! */				perror("stderr"); break;			    }			}		    }		    if (response[0] != 'y') {			fprintf(stderr, "\tnot overwritten\n");			continue;		    }		}	    }	    if(zcat_flg == 0) {		/* Open output file */		if (freopen(ofname, "w", stdout) == NULL) {		    perror(ofname);		    continue;		}		if(!quiet)			fprintf(stderr, "%s: ", *fileptr);	    }	    /* Actually do the compression/decompression */	    if (do_decomp == 0)	compress();#ifndef DEBUG	    else			decompress();#else	    else if (debug == 0)	decompress();	    else			printcodes();	    if (verbose)		dump_tab();#endif /* DEBUG */	    if(zcat_flg == 0) {		copystat(*fileptr, ofname);	/* Copy stats */		if((exit_stat == 1) || (!quiet))			putc('\n', stderr);	    }	}    } else {		/* Standard input */	if (do_decomp == 0) {		compress();#ifdef DEBUG		if(verbose)		dump_tab();#endif /* DEBUG */		if(!quiet)			putc('\n', stderr);	} else {	    /* Check the magic number */	    if (nomagic == 0) {		if ((getchar()!=(magic_header[0] & 0xFF))		 || (getchar()!=(magic_header[1] & 0xFF))) {		    fprintf(stderr, "stdin: not in compressed format\n");		    exit(1);		}		maxbits = getchar();	/* set -b from file */		block_compress = maxbits & BLOCK_MASK;		maxbits &= BIT_MASK;		maxmaxcode = 1 << maxbits;		fsize = 100000;		/* assume stdin large for USERMEM */		if(maxbits > BITS) {			fprintf(stderr,			"stdin: compressed with %d bits, can only handle %d bits\n",			maxbits, BITS);			exit(1);		}	    }#ifndef DEBUG	    decompress();#else	    if (debug == 0)	decompress();	    else		printcodes();	    if (verbose)	dump_tab();#endif /* DEBUG */	}    }    exit(exit_stat);}static int offset;long int in_count = 1;			/* length of input */long int bytes_out;			/* length of compressed output */long int out_count = 0;			/* # of codes output (for debugging) *//* * compress stdin to stdout * * Algorithm:  use open addressing double hashing (no chaining) on the  * prefix code / next character combination.  We do a variant of Knuth's * algorithm D (vol. 3, sec. 6.4) along with G. Knott's relatively-prime * secondary probe.  Here, the modular division first probe is gives way * to a faster exclusive-or manipulation.  Also do block compression with * an adaptive reset, whereby the code table is cleared when the compression * ratio decreases, but after the table fills.  The variable-length output * codes are re-sized at this point, and a special CLEAR code is generated * for the decompressor.  Late addition:  construct the table according to * file size for noticeable speed improvement on small files.  Please direct * questions about this implementation to ames!jaw. */compress() {    register long fcode;    register code_int i = 0;    register int c;    register code_int ent;#ifdef XENIX_16    register code_int disp;#else	/* Normal machine */    register int disp;#endif    register code_int hsize_reg;    register int hshift;#ifndef COMPATIBLE    if (nomagic == 0) {	putchar(magic_header[0]); putchar(magic_header[1]);	putchar((char)(maxbits | block_compress));	if(ferror(stdout))		writeerr();    }#endif /* COMPATIBLE */    offset = 0;    bytes_out = 3;		/* includes 3-byte header mojo */    out_count = 0;    clear_flg = 0;    ratio = 0;    in_count = 1;    checkpoint = CHECK_GAP;    maxcode = MAXCODE(n_bits = INIT_BITS);    free_ent = ((block_compress) ? FIRST : 256 );    ent = getchar ();    hshift = 0;    for ( fcode = (long) hsize;  fcode < 65536L; fcode *= 2L )    	hshift++;    hshift = 8 - hshift;		/* set hash code range bound */    hsize_reg = hsize;    cl_hash( (count_int) hsize_reg);		/* clear hash table */#ifdef SIGNED_COMPARE_SLOW    while ( (c = getchar()) != (unsigned) EOF ) {#else    while ( (c = getchar()) != EOF ) {#endif	in_count++;	fcode = (long) (((long) c << maxbits) + ent); 	i = ((c << hshift) ^ ent);	/* xor hashing */	if ( htabof (i) == fcode ) {	    ent = codetabof (i);	    continue;	} else if ( (long)htabof (i) < 0 )	/* empty slot */	    goto nomatch; 	disp = hsize_reg - i;		/* secondary hash (after G. Knott) */	if ( i == 0 )	    disp = 1;probe:	if ( (i -= disp) < 0 )	    i += hsize_reg;	if ( htabof (i) == fcode ) {	    ent = codetabof (i);	    continue;	}	if ( (long)htabof (i) > 0 ) 	    goto probe;nomatch:	output ( (code_int) ent );	out_count++; 	ent = c;#ifdef SIGNED_COMPARE_SLOW	if ( (unsigned) free_ent < (unsigned) maxmaxcode) {#else	if ( free_ent < maxmaxcode ) {#endif 	    codetabof (i) = free_ent++;	/* code -> hashtable */	    htabof (i) = fcode;	}	else if ( (count_int)in_count >= checkpoint && block_compress )	    cl_block ();    }    /*     * Put out the final code.     */    output( (code_int)ent );    out_count++;    output( (code_int)-1 );    /*     * Print out stats on stderr     */    if(zcat_flg == 0 && !quiet) {#ifdef DEBUG	fprintf( stderr,		"%ld chars in, %ld codes (%ld bytes) out, compression factor: ",		in_count, out_count, bytes_out );	prratio( stderr, in_count, bytes_out );	fprintf( stderr, "\n");	fprintf( stderr, "\tCompression as in compact: " );	prratio( stderr, in_count-bytes_out, in_count );	fprintf( stderr, "\n");	fprintf( stderr, "\tLargest code (of last block) was %d (%d bits)\n",		free_ent - 1, n_bits );#else /* !DEBUG */	fprintf( stderr, "Compression: " );	prratio( stderr, in_count-bytes_out, in_count );#endif /* DEBUG */    }    if(bytes_out > in_count)	/* exit(2) if no savings */	exit_stat = 2;    return;}/***************************************************************** * TAG( output ) * * Output the given code. * Inputs: * 	code:	A n_bits-bit integer.  If == -1, then EOF.  This assumes *		that n_bits =< (long)wordsize - 1. * Outputs: * 	Outputs code to the file. * Assumptions: *	Chars are 8 bits long. * Algorithm: * 	Maintain a BITS character long buffer (so that 8 codes will * fit in it exactly).  Use the VAX insv instruction to insert each * code in turn.  When the buffer fills up empty it and start over. */static char buf[BITS];#ifndef vaxchar_type lmask[9] = {0xff, 0xfe, 0xfc, 0xf8, 0xf0, 0xe0, 0xc0, 0x80, 0x00};char_type rmask[9] = {0x00, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3f, 0x7f, 0xff};#endif /* vax */output( code )code_int  code;{#ifdef DEBUG    static int col = 0;#endif /* DEBUG */    /*     * On the VAX, it is important to have the register declarations     * in exactly the order given, or the asm will break.     */    register int r_off = offset, bits= n_bits;    register char * bp = buf;#ifdef DEBUG	if ( verbose )	    fprintf( stderr, "%5d%c", code,		    (col+=6) >= 74 ? (col = 0, '\n') : ' ' );#endif /* DEBUG */    if ( code >= 0 ) {#ifdef vax	/* VAX DEPENDENT!! Implementation on other machines is below.	 *	 * Translation: Insert BITS bits from the argument starting at	 * offset bits from the beginning of buf.	 */	0;	/* Work around for pcc -O bug with asm and if stmt */	asm( "insv	4(ap),r11,r10,(r9)" );#else /* not a vax *//*  * byte/bit numbering on the VAX is simulated by the following code */	/*	 * Get to the first byte.	 */	bp += (r_off >> 3);	r_off &= 7;	/*	 * Since code is always >= 8 bits, only need to mask the first	 * hunk on the left.	 */	*bp = (*bp & rmask[r_off]) | (code << r_off) & lmask[r_off];	bp++;	bits -= (8 - r_off);	code >>= 8 - r_off;	/* Get any 8 bit parts in the middle (<=1 for up to 16 bits). */	if ( bits >= 8 ) {	    *bp++ = code;	    code >>= 8;	    bits -= 8;	}	/* Last bits. */	if(bits)	    *bp = code;#endif /* vax */	offset += n_bits;	if ( offset == (n_bits << 3) ) {	    bp = buf;	    bits = n_bits;	    bytes_out += bits;	    do		putchar(*bp++);	    while(--bits);	    offset = 0;	}	/*	 * If the next entry is going to be too big for the code size,	 * then increase it, if possible.	 */	if ( free_ent > maxcode || (clear_flg > 0))	{	    /*	     * Write the whole buffer, because the input side won't	     * discover the size increase until after it has read it.	     */	    if ( offset > 0 ) {		if( fwrite( buf, 1, n_bits, stdout ) != n_bits)			writeerr();		bytes_out += n_bits;	    }	    offset = 0;	    if ( clear_flg ) {    	        maxcode = MAXCODE (n_bits = INIT_BITS);	        clear_flg = 0;	    }	    else {	    	n_bits++;	    	if ( n_bits == maxbits )		    maxcode = maxmaxcode;	    	else		    maxcode = MAXCODE(n_bits);	    }#ifdef DEBUG	    if ( debug ) {		fprintf( stderr, "\nChange to %d bits\n", n_bits );		col = 0;	    }#endif /* DEBUG */	}    } else {	/*	 * At EOF, write the rest of the buffer.	 */	if ( offset > 0 )	    fwrite( buf, 1, (offset + 7) / 8, stdout );	bytes_out += (offset + 7) / 8;	offset = 0;	fflush( stdout );#ifdef DEBUG	if ( verbose )	    fprintf( stderr, "\n" );#endif /* DEBUG */	if( ferror( stdout ) )		writeerr();    }}/* * Decompress stdin to stdout.  This routine adapts to the codes in the * file building the "string" table on-the-fly; requiring no table to * be stored in the compressed file.  The tables used herein are shared * with those of the compress() routine.  See the definitions above. */decompress() {    register char_type *stackp;    register int finchar;    register code_int code, oldcode, incode;    /*     * As above, initialize the first 256 entries in the table.     */    maxcode = MAXCODE(n_bits = INIT_BITS);    for ( code = 255; code >= 0; code-- ) {	tab_prefixof(code) = 0;	tab_suffixof(code) = (char_type)code;    }    free_ent = ((block_compress) ? FIRST : 256 );

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
秋霞电影网一区二区| 久久精品久久久精品美女| 日韩午夜激情av| 成人中文字幕合集| 麻豆91精品视频| 亚洲国产视频a| 中文字幕亚洲在| 久久午夜老司机| 日韩欧美一区电影| 欧美日韩国产色站一区二区三区| 国产传媒欧美日韩成人| 免费高清视频精品| 亚洲二区在线观看| 亚洲黄色片在线观看| 中文字幕第一区二区| 欧美电视剧在线观看完整版| 欧美在线啊v一区| 一本一道久久a久久精品综合蜜臀| 紧缚奴在线一区二区三区| 亚洲国产sm捆绑调教视频 | 色综合久久88色综合天天6| 国产精品一区二区在线观看不卡| 日韩二区三区在线观看| 亚洲第一主播视频| 一区二区三区四区乱视频| 中文字幕在线免费不卡| 中文字幕+乱码+中文字幕一区| 日韩免费性生活视频播放| 欧美一区二区三区精品| 欧美人狂配大交3d怪物一区| 91福利国产精品| 色偷偷88欧美精品久久久| 欧美顶级少妇做爰| 欧美中文字幕不卡| 欧美日韩在线观看一区二区| 在线免费观看不卡av| 日本福利一区二区| 在线一区二区三区四区五区| 在线免费亚洲电影| 欧美日韩中文国产| 欧美乱熟臀69xxxxxx| 制服.丝袜.亚洲.中文.综合| 欧美一卡二卡三卡| 欧美一卡2卡三卡4卡5免费| 欧美一级视频精品观看| 精品欧美黑人一区二区三区| 欧美mv和日韩mv国产网站| 精品日韩99亚洲| 久久蜜桃一区二区| 亚洲国产成人午夜在线一区| 国产精品美女久久久久高潮| 亚洲视频每日更新| 亚洲一线二线三线久久久| 亚洲成人动漫av| 美女视频第一区二区三区免费观看网站| 日本大胆欧美人术艺术动态| 久久爱www久久做| 成人一区二区三区视频| 成人福利视频在线看| 91精彩视频在线观看| 欧美巨大另类极品videosbest | 久久久久9999亚洲精品| 国产精品久久久一本精品| 一二三区精品视频| 免费观看在线综合| 成人黄色大片在线观看| 在线一区二区三区| 7777精品伊人久久久大香线蕉完整版| 欧美不卡激情三级在线观看| 亚洲国产激情av| 一区二区久久久久| 狠狠色丁香久久婷婷综| 色婷婷av一区| 日韩精品一区二| 中文字幕一区二区三区不卡| 首页欧美精品中文字幕| 国产一区二区三区| 91福利社在线观看| 久久这里都是精品| 亚洲综合在线视频| 国产一区二区三区在线观看免费| 99国产精品久久久久久久久久| 欧美性xxxxxxxx| 精品日产卡一卡二卡麻豆| 美女诱惑一区二区| 99热在这里有精品免费| 欧美精品精品一区| 欧美国产综合一区二区| 舔着乳尖日韩一区| av在线不卡网| 精品国产一区二区三区不卡| 亚洲精品乱码久久久久久久久| 毛片不卡一区二区| 欧美视频中文字幕| 国产精品久久毛片av大全日韩| 日本va欧美va瓶| 91色视频在线| 久久婷婷成人综合色| 日韩av电影免费观看高清完整版| 成人性色生活片免费看爆迷你毛片| 欧美男生操女生| 亚洲欧洲三级电影| 国产成人精品免费| 欧美xfplay| 性做久久久久久免费观看| a美女胸又www黄视频久久| www国产精品av| 蜜臀久久久久久久| 欧美亚洲日本一区| 亚洲欧美在线观看| 国产一区二区三区蝌蚪| 日韩美女天天操| 三级影片在线观看欧美日韩一区二区 | 亚洲国产精品视频| 色呦呦日韩精品| 亚洲图片激情小说| 成人亚洲精品久久久久软件| 精品国产123| 美女网站视频久久| 日韩欧美国产三级电影视频| 亚洲动漫第一页| 欧美三级一区二区| 亚洲一区二三区| 在线精品观看国产| 一片黄亚洲嫩模| 欧美性大战久久久久久久蜜臀| 亚洲三级在线观看| 91视视频在线观看入口直接观看www| 国产欧美日韩在线观看| 高清不卡一区二区| 国产精品美女久久福利网站| 成人国产视频在线观看| 中文字幕av免费专区久久| 成人网男人的天堂| 亚洲色图.com| 99久久99久久免费精品蜜臀| 中文字幕亚洲成人| 91在线丨porny丨国产| 亚洲欧美电影一区二区| 日本韩国一区二区三区视频| 一区二区三区精密机械公司| 26uuu亚洲综合色欧美| 久久国产乱子精品免费女| 精品少妇一区二区三区视频免付费| 美女在线观看视频一区二区| 欧美电视剧在线看免费| 国产一区二区导航在线播放| 国产欧美一二三区| 99国产精品久久久| 午夜精品久久久久影视| 日韩免费视频一区| 国产精品亚洲一区二区三区在线| 国产日韩视频一区二区三区| 不卡一区二区三区四区| 亚洲黄一区二区三区| 91精品国产综合久久精品app| 免费成人小视频| 日本一区二区视频在线观看| 91在线视频播放地址| 亚洲国产成人精品视频| 精品福利在线导航| a级高清视频欧美日韩| 亚洲电影中文字幕在线观看| 精品国产乱码久久久久久蜜臀| 国产成人免费视频网站| 亚洲美女少妇撒尿| 欧美精选一区二区| 国产不卡高清在线观看视频| 亚洲另类春色校园小说| 日韩亚洲欧美中文三级| 国产成人免费视频网站| 亚洲成人你懂的| 国产偷v国产偷v亚洲高清| 色久优优欧美色久优优| 久久成人免费电影| 亚洲欧美激情插| 精品99999| 欧美色精品天天在线观看视频| 激情成人综合网| 亚洲综合一区在线| 国产丝袜美腿一区二区三区| 欧美日韩午夜影院| 国产不卡视频在线播放| 视频一区二区三区在线| 国产精品毛片a∨一区二区三区| 91精品国产综合久久小美女| 99这里都是精品| 麻豆精品在线播放| 一区二区三区四区视频精品免费| 2019国产精品| 欧美日韩免费观看一区二区三区| 国内精品久久久久影院薰衣草| 亚洲综合免费观看高清完整版在线 | www.亚洲免费av| 精品一区二区av| 亚洲成人av资源| 亚洲视频在线一区观看| 久久亚洲一区二区三区四区| 色综合久久久久综合体| 国产精品自在在线|