简单,可复制

点点滴滴,尽在文中

  :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2011年12月20日

摘要: 前言 最近在项目中遇到大型程序出现SIGSEGV ,一直不知道用core dump工具来调试程序,花了近一周的时间,才定位问题,老大很生气,后果很严重,呵呵,事后仔细学习了这块的知识,了解一点core dump的知识。 在使用半导体作为内存的材料前,人类是利用线圈当作内存的材料(发明者为王安),线圈就叫作core ,用线圈做的内存就叫作“core memory”。(线圈的单词应该是coil,呵呵)如今,半导体工业澎勃发展,已经没有人用线圈当内存了,不过,在许多情况下,人们还是把内存叫作“core”。 所以注意了:这里的core不是核心,而是内存。不过结合实际来看,好像也有点“内核所占内存”的. 阅读全文
posted @ 2011-12-20 10:08 ggjucheng 阅读(12889) 评论(0) 推荐(2)

2011年12月18日

摘要: 引言模板(Template)指C++程序设计设计语言中采用类型作为参数的程序设计,支持通用程序设计。C++ 的标准库提供许多有用的函数大多结合了模板的观念,如STL以及IO Stream。函数模板在c++入门中,很多人会接触swap(int&, int&)这样的函数类似代码如下:void swap(int&a , int& b) { int temp = a; a = b; b = temp;}但是如果是要支持long,string,自定义class的swap函数,代码和上述代码差不多,只是类型不同,这个时候就是我们定义swap的函数模板,就可以复用不同类型的s 阅读全文
posted @ 2011-12-18 21:29 ggjucheng 阅读(80081) 评论(6) 推荐(7)

摘要: 引言异常,让一个函数可以在发现自己无法处理的错误时抛出一个异常,希望它的调用者可以直接或者间接处理这个问题。而传统错误处理技术,检查到一个局部无法处理的问题时:1.终止程序(例如atol,atoi,输入NULL,会产生段错误,导致程序异常退出,如果没有core文件,找问题的人一定会发疯)2.返回一个表示错误的值(很多系统函数都是这样,例如malloc,内存不足,分配失败,返回NULL指针)3.返回一个合法值,让程序处于某种非法的状态(最坑爹的东西,有些第三方库真会这样)4.调用一个预先准备好在出现"错误"的情况下用的函数。第一种情况是不允许的,无条件终止程序的库无法运用到不 阅读全文
posted @ 2011-12-18 21:27 ggjucheng 阅读(91464) 评论(7) 推荐(15)

2011年12月16日

摘要: 学习Linux也有一阵子了,这过程中磕磕撞撞的,遇到了问题,也解决了一些问题,学习的路子是曲折的,想总结点啥的,让刚刚学习Linux的不会望而生畏。为啥我们要学习Linux技术的价值不在于这个技术有多么高超,而在于技术本身给我们带来什么价值,所以很多时候我们学习一个技术,不能盲目学,是为了使用这个技术,知道这个技术的使用场景,知道这个技术带来的便利性,我们才决定要深入学习。那我们干嘛要学习Linux?Linux能给我们带来什么价值呢,这样我们的学习才不会麻木。Linux给我的感觉就是稳定,免费,性能好。稳定,体现在哪里?我们使用PC机,安装的操作系统一般是windows xp,windows 阅读全文
posted @ 2011-12-16 14:34 ggjucheng 阅读(179120) 评论(21) 推荐(61)

2011年12月15日

摘要: 如果想要有效的管理一个稍微复杂一点的体系,针对其中事物的一套统一、带层次结构、清晰明了的命名准则就是必不可少而且非常好用的工具。活跃在生物学、化学、军队、监狱、黑社会、恐怖组织等各个领域内的大量有识先辈们都曾经无数次地以实际行动证明了以上公理的正确性。除了上帝(设它可以改变世间万物的秩序)以外,相信没人有实力对它不屑一顾。在软件开发这一高度抽象而且十分复杂的活动中,命名规则的重要性更显得尤为突出。一套定义良好并且完整的、在整个项目中统一使用的命名规范将大大提升源代码的可读性和软件的可维护性。在引入细节之前,先说明一下命名规范的整体原则:同一性在编写一个子模块或派生类的时候,要遵循其基类或整体模 阅读全文
posted @ 2011-12-15 19:15 ggjucheng 阅读(64601) 评论(2) 推荐(17)

摘要: 前言32位和64位系统在计算机领域中常常提及,但是仍然很多人不知道32位和64位的区别,所以本人在网上整理了一些资料,并希望可以与大家一起分享。对于32位和64位之分,本文将分别从处理器,操作系统,JVM进行讲解。IA介绍 简介说到处理器,大家用的最多的莫过于Intel的处理器了,所以本文主要从Intel的处理器讲解32位和64位的处理器之分。 通常将采用Intel(英特尔)处理器的服务器称之为IA(IntelArchitecture)架构服务器,又称 CISC(ComplexInstructionSetComputer复杂指令集)架构服务器,由于IA架构的服务器是基于PC的x86处理器体系结 阅读全文
posted @ 2011-12-15 14:59 ggjucheng 阅读(18681) 评论(1) 推荐(6)

摘要: 架构设计 一些软件设计的原则硬件 SATA SAS SSD 硬盘介绍和评测 硬件的一些性能指标 Intel双核与超线程的区别与联系http HTTP协议详解,你所不知道的 HTTP Server开发相关学习资料整理推介 HTTPS的七个误解编程语言 个人常用的vba代码算法 一致性哈希算法及其在分布式系统中的应用 B树、B-树、B+树、B*树正则表达式 正则表达式30分钟入门教程ip 纯真IP数据库格式详解test 十个免费的Web压力测试工具 测试网站速度的五个免费在线工具windows windows初始化后做了哪些事情 windows7修改双系统启动项名称... 阅读全文
posted @ 2011-12-15 14:15 ggjucheng 阅读(4852) 评论(1) 推荐(2)

摘要: 这篇教程写了在不同工作模式下使用VIM的一些基本技巧 -- 即插入模式(insert mode), 命令模式(command mode), 存取文件等。目的是帮助刚刚接触VIM的新手更加有效率的使用这个出色的编辑器。说明:在这篇文章里面,<C-X>代表Ctrl + X -- 就是按住Ctrl键然后再按X。而且你可以在很多情况下使用 :help command 来获得大部分命令的帮助,这个是VIM的内部帮助文件命令。1. 高效率移动1.1 在插入模式之外基本上来说,你应该尽可能少的呆在插入模式里面,因为在插入模式里面VIM就像一个“哑巴”编辑器一样。很多新手都会一直呆在插入模式里面, 阅读全文
posted @ 2011-12-15 14:00 ggjucheng 阅读(8546) 评论(0) 推荐(5)

摘要: 在终端下使用vim进行编辑时,默认情况下,编辑的界面上是没有显示行号、语法高亮度显示、智能缩进等功能的。为了更好的在vim下进行工作,需要手动设置一个配置文件:.vimrc。在启动vim时,当前用户根目录下的.vimrc文件会被自动读取,该文件可以包含一些设置甚至脚本,所以,一般情况下把.vimrc文件创建在当前用户的根目录下比较方便,即创建的命令为:$vi ~/.vimrc设置完后$:x 或者 $wq 进行保存退出即可。下面给出一个例子,其中列出了经常用到的设置,详细的设置信息请参照参考资料:"双引号开始的行为注释行,下同"去掉讨厌的有关vi一致性模式,避免以前版本的一些 阅读全文
posted @ 2011-12-15 13:52 ggjucheng 阅读(5861) 评论(0) 推荐(3)

摘要: GDB 是 linux 系统上常用的 c/c++ 调试工具,功能十分强大。对于较为复杂的系统,比如多进程系统,如何使用 GDB 调试呢?考虑下面这个三进程系统:进程 Proc2 是 Proc1 的子进程,Proc3 又是 Proc2 的子进程。如何使用 GDB 调试 proc2 或者 proc3 呢?实际上,GDB 没有对多进程程序调试提供直接支持。例如,使用GDB调试某个进程,如果该进程fork了子进程,GDB会继续调试该进程,子进程会不受干扰地运行下去。如果你事先在子进程代码里设定了断点,子进程会收到SIGTRAP信号并终止。那么该如何调试子进程呢?其实我们可以利用GDB的特点或者其他一些 阅读全文
posted @ 2011-12-15 12:53 ggjucheng 阅读(2049) 评论(0) 推荐(0)