小程序
文章平均质量分 65
插入光盘即可
这个作者很懒,什么都没留下…
展开
-
一次缓冲区溢出试验的收获
最近看了不少计算机底层的东西,感觉看汇编代码已经没有明显吃力的感觉,于是就想结合最近的阅读作些小东西,来印证书本上的知识。第一个想到的就是基于栈的缓冲区溢出攻击。 关于缓冲区溢出攻击的原理,已经看了很多编了, 并不难理解,但是还是自己做个简单的实验来吧,纸上得来终觉浅。试验环境:Ubuntu 6.10 , Kernel version:2.6.17.10, gcc :4.1.2 g原创 2007-03-13 20:14:00 · 2477 阅读 · 1 评论 -
一道简单的笔试题
要求:将C++源代码中的注释去掉即,对于下列源代码#include iostream> // comment1using namespace std;/* comment 2// #include */ int main( int argc,char *argv[] /*comment 3*/ ){ return 1;}/**//**/...处理后应输出#inclu原创 2007-09-18 10:35:00 · 1069 阅读 · 0 评论 -
海滩上原来最少有多少个桃子
题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子? 思路: 设最后一个猴子拿了t0个桃子, 倒数第二个拿了t1=(5*t0+1)/4个 ……原创 2007-04-16 16:54:00 · 4289 阅读 · 0 评论 -
面试题:找出永远说真话的人
看到的一道面试题,不知是出自何处,挺有意思的。“有5个人,其中一个永远说真话,另外4个则在真话和假话中交替,即这次说真话,下次就说假话,反之亦然;现在要求你问两个问题,然后找出谁是那个永远说说真话的人。问题的要求是每次只能问单个人而不是全体,另外,那4个交替说真假话的人可以选择如何回答第一个问题。”这个题目其实就是一堆逻辑判断,只要思维不混乱,仔细分析各种可能性,方法还是不难得出的:第一次提问:任原创 2007-04-08 14:01:00 · 2907 阅读 · 0 评论 -
编程珠玑中的问题(1)——向量旋转
摘自《Programming Pearls》2rd 第2章问题:将一个具有n个元素的一维向量想左旋转k个位置。例如,假设n=8,k=3,那么向量abcdefgh旋转后得到向量defghabc。程序给定的限制是仅使用几十字节的微小内存,花费与n成比例的时间来完成旋转。我的思考: 该问题看起来可以用一个典型的递归思路来解决。 例如题目中所给的例子,可以按如下步骤完成: (1),将(a原创 2007-04-02 22:06:00 · 1887 阅读 · 0 评论 -
读UNP一书所作的小试验(2)
本次的试验内容是UNP第7章:套接口选项 。 “SO_REUSEADDR 套接字选项" 在前一次的实验中,我就注意到,如果在步骤1中,不是kill掉向client提供服务的server子进程,而是kill掉监听外部连接的server 父进程的话,并不影响client与其对端的通信——这也符合在OS教材中传授的知识:"当进程被kill掉时,将其所有还在运行的子进程托管给自己的父原创 2007-03-17 10:57:00 · 1048 阅读 · 0 评论 -
读UNP一书所作的小试验(1)
近期开始认真阅读Richard Stevens 的经典著作《Unix Networking Programming :volume 1》3rd。大牛的作品没说的,无论是技术还是文字都是精炼准确的典范。 书中的某些论述和自己平时的认识有较大出入,所以还是以书中提供的代码为基础,作了些简单的实验来印证书中的观点吧。 “5.12——服务器进程终止" 第5章的内容原创 2007-03-15 21:17:00 · 3054 阅读 · 0 评论 -
C语言的sizeof与结构体的对齐
"Devils are in the details." C语言中的sizeof,在我看来,就是一个能容纳很多魔鬼、令人头疼的细节。 在头疼也要上,谁让咱们是程序员呢。 首先要明白,sizeof是C/C++中定义的操作符,而不是函数,完成的操作是返回被操作数所占用的内存空间空间大小(单位是字节)。 其次,sizeof的运算结果必须在编译时就确定下来,原创 2007-03-14 06:20:00 · 2004 阅读 · 1 评论 -
读UNP一书所作的小试验(3)
本次试验的主题是习题11.9 该习题的讨论是围绕套接字选项SO_REUSEADDR的。习题中提出的问题可以通过在server程序中调用setsockopt开启SO_REUSEADDR来解决,再次就不多写了。 试验中发现的问题如下: 首先说明server端和client端的启动参数(两个程序都在本机运行) server: daytimeudpsr原创 2007-03-17 22:47:00 · 1282 阅读 · 0 评论 -
读书摘要:大规模C++程序设计
引言 与主流观点相反,从根本上说,最普通形式的面向对象程序要比对应的面向过程的程序更难测试和校验。通过虚函数改变内部行为的能力可能导致类不变式无效;而对于程序的正确性来说,类不变式是必要的。第一部分 基础知识 对符号名称的使用,而不是声明本身,导致一个未定义符号被引入到.o目标文件中。 typedef声明是的性质属于"internal linkage",尽管这个说法不原创 2008-04-13 04:18:00 · 5937 阅读 · 0 评论