ChinaUnix.net
相关文章推荐:

高效的两段式循环缓冲区 陈罡

循环缓冲区读写问题请教, 有一个读指针和一个写指针, 开始先写,然后读, 限制条件是读不能超过写, 写也不能转过一圈后超过读。 想问问这个实现不需要加锁能不能实现?

by yikaikai - C/C++ - 2007-09-07 16:33:47 阅读(2347) 回复(7)

相关讨论

最近看一些性能优化的东西,读了读intel对于C程序员的一些建议,大部分是群众喜闻乐见的老几条。其中关于循环条件在不同位置求值带来的性能开销以前还真不知道,贴出来给和我一样不知道的朋友分享一下。 低性能写法: [quote] int main() { int ret = 0; int i = 100; while ( i-- ) ret ++; } [/quote] 这是我常用的写法,把求值放到括号中,看上去简洁些。 gcc -S产生的汇编如下(部分) [quote] .L3: ...

by zx_wing - C/C++ - 2010-08-30 11:32:05 阅读(3232) 回复(14)

IBM新一代X86服务器上使用的是高效能“对转式”风扇吗?

by BT小新 - X新品答题闯关赢奖 - 2009-09-27 15:19:31 阅读(882) 回复(11)

IBM新一代X86服务器上使用的是高效能“对转式”风扇吗?

by vepeta - IBM System x嘉年华-问答闯关达人赛 - 2011-06-13 10:46:03 阅读(2000) 回复(17)

请教一下各位大侠,mysql 查询缓冲命中率和索引效率为百分之多少出 算正常?

by a251235308 - MySQL - 2009-05-05 22:18:29 阅读(1116) 回复(4)

初学C++,写了一代码,本意想实现如下功能: 要求用户输入一个整数,打印其值,若用户输入错误的数据(比如输入字母),则打印一条出错信息,然后让用户重新输入。 代码如下: 现在的问题是: 若用户正确地输入整数,则没有任何问题;但是用户如果输入错误数据,比如输入字母'a',那么程序就会死循环打印出错信息“error,retry”,永远不会让用户进行第二次输入。而我的本意是只打印一次出错信息,然后等待用户第二次输入。 ...

by kiffa - C/C++ - 2008-10-06 23:40:17 阅读(2801) 回复(5)

求教各位老师: 我想内存清除缓冲区怎么实现

by aklus - C/C++ - 2005-10-29 10:46:30 阅读(855) 回复(3)

大家有些人对关于缓冲区溢出攻击问题比较模糊。 我想当你知道什么是缓冲区,怎么样溢出,缓冲区溢出后做什么? 这些道理你懂了以后,就会知道缓冲区溢出是不是限制特定的语言或是 应用程序的BUG了. 像典型C语言的缓冲区溢出例子[1],大部分使用strcpy()函数[2],为什么? 因为这个函数有BUG,不检查越界问题[3]。 所以,导缓冲区溢出攻击.针对这个例子,什么是缓冲区?缓冲区是调用这个 函数时候的堆栈(为临时变量分配空间)空间.怎么样溢出?由...

by jinbsd - 数据安全 - 2005-05-18 09:56:31 阅读(868) 回复(2)

[code] /* *program.c */ #include; void test(void) { char small[30]; gets(small); printf("%s\n", small); } int main(void) { test(); return 0; } ./program /* *39个 */ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ./program /* *40个 */ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 错误 $gdb program (gdb) di...

by FreeGnu - C/C++ - 2005-05-03 18:08:52 阅读(1898) 回复(18)

请问现在有没有比libsafe/openwall/stackguard更好的防御缓冲区溢出的方法?

by shangxp1980 - Linux论坛 - 2004-12-01 23:55:36 阅读(349) 回复(1)

有下面程序: [code]int main() { char *s1="12"; char *s2="34"; FILE* fp; fp = fopen("/tmp/fwrite","w"); fwrite(s1,sizeof(s1),1,fp); //fflush(0); setbuf(fp,NULL); fclose(fp); fp = fopen("/tmp/fwrite","a+"); fwrite(s2,sizeof(s2),1,fp); fclose(fp); return 0; }[/code] cat /tmp/fwrite 为12334w 如果把setbuf换成setlinebuf,问题照旧,用fflush(0),问题照旧,如果在s1和s2后面加\n,正常,这到底是什...

by mudga - C/C++ - 2004-10-16 11:28:39 阅读(1106) 回复(3)