ChinaUnix.net
相关文章推荐:

linux 中的hash表

本帖最后由 印随 于 2010-07-15 13:44 编辑 也是从Snort2.8.5摘出来的。 1:删除无用的头文件 2:修改了几个包装函数(关于内存分配和字符串的) 研究了将近3个小时,代码结构非常好,hash函数是依赖一个大素数,效果怎么样不知道, 俗话说的好:谁用谁知道

by 印随 - C/C++ - 2010-07-14 08:42:44 阅读(14470) 回复(19)

相关讨论

linuxhash函数hash_long等,用了golden ratio来计算。因为桶(bits)的数量需要由hash函数和对冲突的期望来决定,那么对于hash_long这样的hash函数,我们怎么确定桶的数量呢?有兄弟在项目用过吗?能具体讲讲分析过程吗? 谢谢

by xiegang112 - 内核源码 - 2009-07-22 09:54:59 阅读(6799) 回复(14)

我在写个通用点的哈希。略知一点kobject的内容,现在我这个哈西有个hash_obj,也是嵌入到大的对象之。在destory哈希的时候, 我想要吧外面这个大对象也free掉。 只知道gcc有typeof这个东西,获得某个对象的类型,(也就是结构体布局),我想知道typeof的结果, 也就是一个对象的类型,是否可以作为函数参数传进去。然后类似于container_of宏那样获得外面的大对象 具体来说,像这样: struct hash_entry_s{ int key; ...

by peidright - C/C++ - 2010-02-03 13:08:06 阅读(1835) 回复(3)

hash 这个代码是自己模拟哈希实现的一个简单的学生统计系统,具体是实现的散列的开散列,即用数组保存一组数据,这一组数据通过链连结彼此,于是达到增加,查找,替换,删除的功能。 hash的预映射算法比较简单,即将学生学号的各个位相加,得到的个位数数值即为散列值,因为个位数所以数组大小为10. Java代码[code]1.private int handdata(Student stu) { 2. int num = stu.numb; 3. ...

java

by feiyang10086 - Java - 2011-11-27 10:28:49 阅读(1476) 回复(0)

source如下 gnuhash.h [code] #ifndef _GUN_hash_LIST #define _GNU_hash_LIST #include #define __USE_GNU #include #define hash_create(size, tab) do { \ int len = sizeof(struct hsearch_data); \ tab = malloc(len); \ memset(tab, 0, len); \ hcreate_r(size,tab); \ } while (0) #define hash_createa hcreate_r #define hash_destory hdestroy_r EN...

by gangjh - C/C++ - 2009-03-17 17:28:55 阅读(5411) 回复(4)

使用apache apr创建hash,为何在hash存储的关键字和值的长度只能是三个字符? 代码如下: static void modify_hashtab( apr_hash_t *ht, apr_pool_t *mp) { const char *key; const char *val; char ch; do { printf(" \nInput the key:"); scanf("%s",&key); printf(" \nInput the value:"); scanf("%s",&val); /* 存储于hash */ apr_hash_set(ht,apr_pstrdup(mp,&key),APR_hash_KEY_ST...

by firecityplans - C/C++ - 2011-09-30 21:03:07 阅读(3155) 回复(5)

实现的功能: 1. 从指定文件target.txt得到需要的字符串A,B,C,字符串是以"[%A%]"为标记 2. 将A,B,C作为hash的key保存,同时赋值相应的Value,不能重复 3. hash的Value是变量名$a, $b, $c 目前只完成第一步,输出内容还是错的,请高手纠错,并能否提示一下第2,3怎么实现?! #!/usr/bin/perl -w use strict; my $file = "target.txt"; if (-e $file) { open (FH, $file) or die...

by lillainpcy - Perl - 2010-12-25 22:08:40 阅读(3268) 回复(8)

昨天无意发现了一篇文档,解决了我很久以来的一些问题,于是花了半天的时间把它翻译了一下,可是翻译的却不好,如果您的E文还好的话,建议您直接看原文更好。 这是关于使用iptables来调优防火墙性能的一篇短文。 谢谢freenode 上#debian-zh的pnt_。 原文地址: http://www.wallfire.org/misc/netfilter_conntrack_perf.txt 翻译:NetDC 如果您有什么好的想法可以和我交流。 转载注明出处,谢谢。 Netfilter conntrack 性能调...

by yeahilly - Linux文档专区 - 2009-07-17 14:26:01 阅读(940) 回复(0)

[quote] /* Idea from tcp.c: use 1/16384 of memory. On i386: 32MB * machine has 256 buckets. >= 1GB machines have 8192 buckets. */ if (!ip_conntrack_htable_size) { ip_conntrack_htable_size = (((num_physpages << PAGE_SHIFT) / 16384) / sizeof(struct list_head)); if (num_physpages > (1024 * 10...

by platinum - 内核源码 - 2007-12-19 12:40:39 阅读(1927) 回复(7)

首先为5000台机器的网吧的规模感到震惊! 2.4的内核我觉得有必要升级到2.6。 5000台机器,每台约100个并发连接(在实际的应用,如NAT后面的机器打开迅雷、BT、Flashget之类的软件,大概会在ip_conntrack增加500-1000个连接/机器,当然如果只是简单的网页浏览不会达到100), 约50万并发链接,每个IP理论端口65535,实际可用到50000左右,我觉得大概用10个IP地址做NAT 的POOL比较合适。 因此应考虑多VLAN,用多条SNAT规则将这5000...

by ccjsj1 - Linux文档专区 - 2007-11-12 11:29:20 阅读(847) 回复(0)

看情景分析文件系统部分,里边有很多hash。比如文件的dentry结构挂入hash的时候是通过上一级目录dentry的地址和该文件的文件名映射到一个hash table。我不明白的地方是这样计算出来的hash值到底是不是唯一的,我觉得应该是,但是看代码感觉不是,好像还可能有别的dentry结构通过hash以后也能得到同一个hash值,请问这是为什么?

by dengcainiao - 内核/嵌入技术 - 2006-06-24 18:52:11 阅读(587) 回复(3)