06 2012 档案

摘要:互联网协议入门(二) 作者: 阮一峰 日期: 2012年6月11日 ... 阅读全文
posted @ 2012-06-30 22:03 Mr.Rico 阅读(190) 评论(0) 推荐(0) 编辑
摘要:应同学需求,在考试之后帖出这个实验程序。与网络上可以下载到的大多数生产者消费者问题模拟程序不同,本程序使用进程(而非线程)模拟,基于共享内存读写“产品”。同时给出了Windowst和Linux下实现的源代码,使用gcc编译通过。 本程序仅供参考,请勿挪做他用。 源代码下载: 这里(Linux 版)或者 这里(Windows 版)linux代码: View Code #include<stdio.h>#include<time.h>#include<unistd.h>#include<s... 阅读全文
posted @ 2012-06-27 22:28 Mr.Rico 阅读(3828) 评论(0) 推荐(0) 编辑
摘要:在bash命令行工作中,为常用的操作编写一个脚本或外部命令是很容易的。事实上自己添加一条内置命令(built-in)也并不难。内置命令比脚本和外部命令的执行效率更高,还可以访问脚本和外部命令无法深入的bash内部,只是可移植性下降了。 GNU bash的源代码结构较为清晰。源代码目录(记为$(srcdir))下的builtins目录存储的是各个内置命令的源代码预定义文件(*.def)。 在make的过程中,由mkbuiltins工具将它们预编译为源程序(*.c),进而编译为目标文件(*.o)。mkbuiltins工具是由同一目录 ... 阅读全文
posted @ 2012-06-27 22:26 Mr.Rico 阅读(889) 评论(0) 推荐(0) 编辑
摘要:linux常用的makefile模版编写 在linux下面,我们不得不自己写makefile,makefile的确博大精深,但是实际上对于日常的使用来说,无非就是 1:编译可执行程序。2:编译lib库 3:编译so库 本博针对上面三种目的各自写出了makefile模版,希望对大家有所帮助。 一.编译可执行程序 当前目录下制定文件编译成可执行文件(连接外部库的话只需要更改INC和LIB即可) CXX =g++ TARGET ... 阅读全文
posted @ 2012-06-27 22:23 Mr.Rico 阅读(623) 评论(0) 推荐(0) 编辑
摘要:编码问题的例子 在windows自带的notepad(记事本)程序中输入“联通”两个字,保存后再次打开,会发现“联通”不见了,代之以“��ͨ”的乱码。这是windows平台上典型的中文编码问题。即文件保存的时候是按照ANSI编码(其实就是GB2312,后面会详细介绍)保存,打开的时候程序按照UTF-8方式对内容解释,于是就出现了乱码。避免乱码的方式很简单,在“文件”菜单中选择“打开”命令,选择保存的文件,然后选择“ANSI”编码, 此时就能看到久违的“联通”两个字了。 在Linux平台上如果使用cat等命令查看文件中的中文内容时,可能出现乱码。这... 阅读全文
posted @ 2012-06-27 22:22 Mr.Rico 阅读(4746) 评论(0) 推荐(3) 编辑
摘要:读书不是目的,关键在于思考。 很早就在水木上看到有人推荐《The C Programming Language》这本书,一直都没看,开学一个月就专心拜读了一下,并认真做了课后习题。读来收获不少,主要有两点:一是加深了自己对一些基础知识的理 解和感悟;二是从中学到了一些不错的编程风格和设计思想,这些东西虽看起来不起眼但细细嚼来还是很值得学习的。下面就从四个方面做一个小总结,水平有限, 加之刚读第一遍,难免有疏漏和错误,非常欢迎批评补充。 ===读书感悟=== ===设计思想=== ===编程风格=== ===经典例程===... 阅读全文
posted @ 2012-06-27 22:10 Mr.Rico 阅读(2291) 评论(0) 推荐(0) 编辑
摘要:作者: 阮一峰 日期: 2012年5月31日 我们每天使用互联网,你是否想过,它是如何实现的? 全世界几十亿台电脑,连接在一起,两两通信。上海的某一块网卡送出信号,洛杉矶的另一块网卡居然就收到了,两者实际上根本不知道对方的物理位置,你不觉得这是很神奇的事情吗? 互联网的核心是一系列协议,总称为"互联网协议"(Internet Protocol Suite)。它们对电脑如何连接和组网,做出了详尽的规定。理解了这些协议,就理解了互联网的原理。 下面就是我的学习笔记。因为这些协议实在太复杂、太庞大,我想整理一个简洁的框架,帮助自己从总体上把握它们。为了保证简单易懂,我做了大量的简 阅读全文
posted @ 2012-06-27 22:06 Mr.Rico 阅读(191) 评论(0) 推荐(0) 编辑
摘要:之前有篇文章讨论过C/C++中的内存存储问题:http://www.cnblogs.com/xkfz007/articles/2490175.html这一篇是主要介绍C++中堆和栈的区别。 C++作为一款C语言的升级版本,具有非常强大的功能。它不但能够支持各种程序设计风格,而且还具有C语言的所有功能。我们在这里为大家介绍的是其中一个比较重要的内容,C++内存区域的基本介绍。 C++内存区域分为5个区域。分别是堆,栈,自由存储区,全局/静态存储区和常量存储区。 栈:由编译器在需要的时候分配,在不需要的时候自动清除的变量存储区。里面通常是局部变量,函数参数等。 堆:由new分配的内存块,他们的释放 阅读全文
posted @ 2012-06-22 20:12 Mr.Rico 阅读(358) 评论(0) 推荐(0) 编辑
摘要:《C++ Templates》读书笔记(一):模板参数2009-08-17 12:48有三种模板参数(形参):(1)类型参数(这是使用得最多的)(2)非类型参数(3)模板的模板参数类型参数: 类型参数是通过关键字typename或者class引入。关键字后面必须是一个简单的标识符,后面用逗号来隔开下一个参数声明,等号代表接下来的是缺省模板实参,一个封闭的尖括号(>)表示参数化子句的结束。 在模板声明内部,类型参数的作用类似于typedef名称。例如,如果T是一个模板参数,就不能使用诸如class T等形式的修饰名称,即使T是一个要被class类型替换的参数也不可以。 template & 阅读全文
posted @ 2012-06-22 09:04 Mr.Rico 阅读(582) 评论(0) 推荐(0) 编辑
摘要:汉诺塔(又称河内塔)问题其实是印度的一个古老的传说。 开天辟地的神勃拉玛(和中国的盘古差不多的神吧)在一个庙里留下了三根金刚石的棒,第一根上面套着64个圆的金片,最大的一个在底下,其余一个比一 个小,依次叠上去,庙里的众僧不倦地把它们一个个地从这根棒搬到另一根棒上,规定可利用中间的一根棒作为帮助,但每次只能搬一个,而且大的不能放在小的上 面。计算结果非常恐怖(移动圆片的次数)18446744073709551615,众僧们即便是耗尽毕生精力也不可能完成金片的移动了。 算法介绍:其实算法非常简单,当盘子的个数为n时,移动的次数应等于2^n – 1(有兴趣的可以自己证明试试看)。后来一... 阅读全文
posted @ 2012-06-12 14:07 Mr.Rico 阅读(7637) 评论(0) 推荐(0) 编辑
摘要:模板类中操作符重载问题("<<"和">>"重载)在模板类中输入流“>>”和输出流“<<”的重载,若使用友元在类内声明,在类外实现,那么连接时将会报错,但我们可以采用以下三种方式来实现输出流"<<"和"输入流>>"的重载。 一、将输出流"<<"和"输入流>>"重载的实现写在类中 #include"stdafx.h"#include<iostream>u 阅读全文
posted @ 2012-06-04 11:11 Mr.Rico 阅读(9797) 评论(0) 推荐(2) 编辑
摘要:什么是容器 首先,我们必须理解一下什么是容器,在C++ 中容器被定义为:在数据存储上,有一种对象类型,它可以持有其它对象或指向其它对像的指针,这种对象类型就叫做容器。很简单,容器就是保存其它对象的对 象,当然这是一个朴素的理解,这种“对象”还包含了一系列处理“其它对象”的方法,因为这些方法在程序的设计上会经常被用到,所以容器也体现了一个好处, 就是“容器类是一种对特定代码重用问题的良好的解决方案”。 容器还有另一个特点是容器可以自行扩展。在解决问题时我们常常不知道我们需要存储多少个对象,也就是说我们不知道应该创建多大的内存空间来保存我们的对象。 显然,数组在这一方面也力不从心。容器的... 阅读全文
posted @ 2012-06-04 10:30 Mr.Rico 阅读(11477) 评论(0) 推荐(5) 编辑
摘要:近日在做一个入职练习中,我遇到了随机数的问题,将分析过程做些整理。本文主要讨论大范围内随机数的产生办法,讨论在随机范围内的等概率问题。一、要求1、产生一个比较大的随机数。2、产生的随机数在随机范围内等概率。二、知识背景我们知道在C语言中有 rand ()函数可以提供随机数,rand ()函数的范围为 0 到 32727。我们假定认为 rand ()产生的随机数在 0 到 32727 范围内是等概率的。如果我们需要得到一个小范围内的随机数,比如 0 到 55 之间的随机数,那我们可以采用 rand ()%55。但是对于我们要得到一个更大范围内的随机数,rand ()便满足不了我们的要求。三、探讨 阅读全文
posted @ 2012-06-02 10:20 Mr.Rico 阅读(514) 评论(0) 推荐(0) 编辑