⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 inv6.c

📁 <B>Digital的Unix操作系统VAX 4.2源码</B>
💻 C
字号:
#ifndef lintstatic char *sccsid = "@(#)inv6.c	4.1	ULTRIX	7/17/90";/* Original Id: "@(#)inv6.c	4.2 (Berkeley) 1/9/85" */#endif#include <stdio.h>#include <assert.h>whash(ft, fa, fb, nhash, iflong, ptotct, phused)FILE *fa, *fb, *ft;int nhash, *phused;long *ptotct;{	char line[100];	int hash = 0, hused = 0;	long totct = 0L;	int ct = 0;	long point;	long opoint = -1;	int m;	int k; 	long lp;	long *hpt;	int *hfreq;	hpt = (long *) calloc (nhash+1, sizeof(*hpt));	assert (hpt != NULL);	hfreq = (int *) calloc (nhash, sizeof(*hfreq));	assert (hfreq != NULL);	hpt[0] = 0;	lp= 0;	while (fgets(line, 100, ft))	{		totct++;		sscanf(line, "%d %ld", &k, &point);		if (hash < k)		{			hused++;			if (iflong) putl(-1L, fb); 			else putw(-1, fb);			hfreq[hash]=ct;			while (hash<k)			{				hpt[++hash] = lp;				hfreq[hash] = 0;			}			hpt[hash] = lp += iflong? sizeof(long) : sizeof(int);			opoint= -1;			ct=0;		}		if (point!=opoint)		{			if (iflong)				putl(opoint=point, fb);			else				putw( (int)(opoint=point), fb);			lp += iflong? sizeof(long) : sizeof(int);			ct++;		}	}	if (iflong) putl(-1L, fb); 	else putw(-1,fb);	while (hash<nhash)		hpt[++hash]=lp;	fwrite(&nhash, sizeof(nhash), 1, fa);	fwrite(&iflong, sizeof(iflong), 1, fa);	fwrite(hpt, sizeof(*hpt), nhash, fa);	fwrite (hfreq, sizeof(*hfreq), nhash, fa);	*ptotct = totct;	*phused = hused;}putl(ll, f)long ll;FILE *f;{	putw(ll, f);}longgetl(f)FILE *f;{	return(getw(f));}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -