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

📄 inv6.c

📁 unix v7是最后一个广泛发布的研究型UNIX版本
💻 C
字号:
# 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 NULL;hpt = calloc (nhash+1, sizeof(*hpt));_assert (hpt != NULL);hfreq = 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;{int *x;x = &ll;putw(x[0], f);putw(x[1], f);}long getl(f)	FILE *f;{int x[2];int *ll;x[0] = getw(f);x[1] = getw(f);ll = x;return (*ll);}

⌨️ 快捷键说明

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