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

📄 hash.c

📁 ccache 是一个快速的编译器缓存。当您编译一个程序的时候
💻 C
字号:
/*   Copyright (C) Andrew Tridgell 2002      This program is free software; you can redistribute it and/or modify   it under the terms of the GNU General Public License as published by   the Free Software Foundation; either version 2 of the License, or   (at your option) any later version.      This program is distributed in the hope that it will be useful,   but WITHOUT ANY WARRANTY; without even the implied warranty of   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the   GNU General Public License for more details.      You should have received a copy of the GNU General Public License   along with this program; if not, write to the Free Software   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.*//*  simple front-end functions to mdfour code*/#include "ccache.h"static struct mdfour md;void hash_buffer(const char *s, int len){	mdfour_update(&md, (unsigned char *)s, len);}void hash_start(void){	mdfour_begin(&md);}void hash_string(const char *s){	hash_buffer(s, strlen(s));}void hash_int(int x){	hash_buffer((char *)&x, sizeof(x));}/* add contents of a file to the hash */void hash_file(const char *fname){	char buf[1024];	int fd, n;	fd = open(fname, O_RDONLY);	if (fd == -1) {		cc_log("Failed to open %s\n", fname);		fatal("hash_file");	}	while ((n = read(fd, buf, sizeof(buf))) > 0) {		hash_buffer(buf, n);	}	close(fd);}/* return the hash result as a static string */char *hash_result(void){	unsigned char sum[16];	static char ret[53];	int i;	hash_buffer(NULL, 0);	mdfour_result(&md, sum);		for (i=0;i<16;i++) {		sprintf(&ret[i*2], "%02x", (unsigned)sum[i]);	}	sprintf(&ret[i*2], "-%u", (unsigned)md.totalN);	return ret;}

⌨️ 快捷键说明

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