- 博客(78)
- 资源 (28)
- 收藏
- 关注
转载 IO与文件读写---同步/异步与阻塞/非阻塞的区别
首先来解释同步和异步的概念,这两个概念与消息的通知机制有关.举个例子,比如我去银行办理业务,可能选择排队等候,也可能取一个小纸条上面有我的号码,等到排到我这一号时由柜台的人通知我轮到我去办理业务了.前者(排队等候)就是同步等待消息,而后者(等待别人通知)就是异步等待消息.在异步消息处理中,等待消息者(在这个例子中就是等待办理业务的人)往往注册一个回调机制,在所等待的事件被触发时由触
2012-10-15 23:12:44
767
原创 面试题,在指定内存位置中分配一个对象
今天遇到一个面试题,大意是要求在指定的内存 void *pMem处分配一个对象,让对象在pMem处存储,直接傻眼了,不会做,现在记录如下。在指定位置安放对象(Placement of Objects)new操作符的缺省方式是在自由内存空间中创建对象。如果希望在指定的地方分配对象,就应该使用这里介绍的方法。看下面的例子:class X {public:X(
2012-10-14 23:20:32
1111
转载 C++学习-构造函数初始化列表(4)
作者:gzshun. 原创作品,转载请标明出处!来源:http://blog.youkuaiyun.com/gzshun从概念上讲,可以认为构造函数分两个阶段进行:1.初始化阶段;2.普通的计算阶段。(计算阶段由构造函数函数体中的所有语句组成)不管成员是否在构造函数初始化列表中显示初始化,类类型的数据成员总是在初始化阶段初始化。初始化发生在计算阶段的开始之前。建议:使用构造
2012-10-04 14:14:55
456
转载 C++子类的构造函数
构造方法用来初始化类的对象,与父类的其它成员不同,它不能被子类继承(子类可以继承父类所有的成员变量和成员方法,但不继承父类的构造方法)。因此,在创建子类对象时,为了初始化从父类继承来的数据成员,系统需要调用其父类的构造方法。 如果没有显式的构造函数,编译器会给一个默认的构造函数,并且该默认的构造函数仅仅在没有显式地声明构造函数情况下创建。构造原则如下: 1. 如果子类没有定
2012-10-02 22:15:54
513
转载 多重继承及虚继承中对象内存的分布
这篇文章主要讲解G++编译器中虚继承的对象内存分布问题,从中也引出了dynamic_cast和static_cast本质区别、虚函数表的格式等一些大部分C++程序员都似是而非的概念。问题拿捏得十分到位,下面是我对原文的翻译,原文见这里(By Edsko de Vries, January 2006)。http://www.alidata.org/archives/878本文是介绍C++
2012-10-02 11:12:49
725
原创 i++与++i的效率差别
i++与++i的区别,我就不多说了。今天主要说明一下它们的效率上的差别。如果只是对内建数据类型(如int),两者的差别很小,基本上没有,这个可以从汇编代码上看出来。但是如果对于C++里的类,那++i和i++两个是运算符重载,它们的区别就比较明显了:i++和++i的 最重要的区别大家都知道就是 +1和返回值的顺序 但,两这还有一个区别(在C++中)就是i++在
2012-09-30 09:58:25
1296
原创 C语言排序算法
1. 插入排序: 算法描述一般来说,插入排序都采用in-place在数组上实现。具体算法描述如下:从第一个元素开始,该元素可以认为已经被排序取出下一个元素,在已经排序的元素序列中从后向前扫描如果该元素(已排序)大于新元素,将该元素移到下一位置重复步骤3,直到找到已排序的元素小于或者等于新元素的位置将新元素插入到该位置中重复步骤2~5如果比较操作的代价比交换操作大的
2012-06-04 10:42:46
596
原创 【趣味数学】24点算法大全
(序号前面带*号的,解中用到了分数)1) 1118 (1+1+1)*8 2) 1126 (1+1+2)*6 3) 1127 (1+2)*(1+7) 4) 1128 (1+1*2)*8 5) 1129 (1+2)*(9-1) 6) 1134 4*(1+1)*3 7) 1135 (1+3)*(1+5) 8) 1136 (1+1*3)*6 9) 1137 3*(1
2012-05-22 12:30:58
3464
转载 valgrind内存检查工具
推荐一个程序,这几天用C语言写了一个程序,跑的数据量小的时候没有什么问题,当数据量比较大时,总是报错,提示的错误大概是:***glibc detected*** ... :munmap_chunk(): invalid pointer: 0x08...在网上google了一下,也有很多人遇到了这个问题,好像是内存和堆栈分配的问题,程序存在内存泄露。然后就搜所到了这个比较强大的工具:val
2012-04-16 14:53:03
1499
转载 Framebuffer how to 编程指导
原文: http://www.ummon.eu/Linux/API/Devices/framebuffer.html 注:本文是Wiebe Zoon ;wiebe@linvision.com 的一部分,原文为英文版,本文由highbar翻译。如转载,请注明原作者及译者。 7. Framebuffer 7.1 Framebuffer介绍
2012-04-13 15:48:20
442
转载 Console programming HOWTO——framebuffer howto
原文: http://www.ummon.eu/Linux/API/Devices/framebuffer.html 7. Framebuffer 7.1 Framebuffer介绍 这是一个关于如何编程的文档,因此,请在你编译或执行例子之前,正确配置你的framebuffer设备。 用framebuffer设
2012-04-13 15:27:12
157
转载 UNIX/Linux specific links
UNIX/Linux specific linksAssemly HOWTO: http://docsrv.caldera.com:8457/en/Howto/Assembly/index.htmlBASH programming - introduction HOWTO: http://docsrv.caldera.com:8457/en/Howto/Bash-Prog-Intr
2012-04-13 15:14:49
424
转载 itoa的两种实现
itoa的两种实现一种是linux的实现,一种是Solaris的实现,代码如下:、namespace linux{ void itoa( int i,char* string) { int power, j; j=i; for (power=1;j>=10;j/=10) pow
2012-04-06 15:45:31
532
转载 推荐一款嵌入式Linux的FTP服务端软件:stupid-ftpd
在嵌入式Linux系统中,有时候需要搭建一个ftp服务器,以便windows或linux系统去访问嵌入式linux系统的数据。现在流行的ftp和vsftpd软件相对比较大,在嵌入式Linux系统下不太合适。最近由于需要,发现了一款很小型的ftp服务器,在这里分享。stupid-ftpd 下载页面根据自己的需要,修改Makefile,将gcc修改为交叉工具链的gcc,比如mips-gnu
2012-03-16 13:42:18
1395
转载 FAQ: 终端和控制台
转载自: http://blog.cliffwoo.com/?p=8吴晋 (cliffwoo@gmail.com)FoOTOo OpenSource Lab由于在很多朋友对终端的概念一直不是很清楚,因此写了这个FAQ,希望能够帮助大家理解这些概念。不妥之处,还请大家来信指出。Q:/dev/console 是什么?A:/dev/console即控制台,是与操作系统交互
2012-03-12 14:28:09
363
转载 五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT) – 整理
http://www.awflasher.com/blog/archives/939现今存在的开源协议很多,而经过Open Source Initiative组织通过批准的开源协议目前有58种(http://www.opensource.org/licenses/alphabetical)。我们在常见的开源协议如BSD, GPL, LGPL,MIT等都是OSI批准的协议。如果要开源
2011-12-07 22:33:34
316
转载 gcc命令行详解
gcc命令行详解1、gcc包含的c/c++编译器gcc、cc、c++、g++gcc和cc是一样的,c++和g++是一样的,一般c程序就用gcc编译,c++程序就用g++编译2、gcc的基本用法gcc test.c这样将编译出一个名为a.out的程序gcc test.c -o test这样将编译出一个名为test的程序-o参数用来指定生成程序的名字3、为什么会出现un
2011-11-21 22:33:25
364
转载 生活在 Bash shell 中
生活在 Bash shell 中,熟记以下快捷键,将极大的提高你的命令行操作效率。编辑命令Ctrl + a :移到命令行首Ctrl + e :移到命令行尾Ctrl + f :按字符前移(右向)Ctrl + b :按字符后移(左向)Alt + f :按单词前移(右向)Alt + b :按单词后移(左向)Ctrl + xx:在命令行首和光标之间移动Ctrl + u :从光标处删除至命令行首
2011-11-20 20:27:17
307
原创 在Linux下使用DNW给开发板下载
Created 星期四 17 十一月 2011介绍:DNW是通过USB烧写软件到ARM板的工具, 由三星公司开发, 可是这个软件只有Window版本. 在ARM9之家论坛上发现有人重写了个简单的命令行版本, 源代码可以从Google Code上下载:dnw2_linux_latest.tgz (http://code.google.com/p/c8051f320dev/download
2011-11-17 21:25:09
1069
1
转载 在NAND FLASH上建立YAFFS2文件系统
在NAND FLASH上建立YAFFS2文件系统(一)By on 2006-07-22 经过了半个多月的努力,终于搞定nandflash的mtd驱动和上层的yaffs2文件系统。这半个多月来几乎每天都要和挫败感斗争,每天都要忍受这个方面,那个方面的bug。想想自己这半个多月来,也算看不少资料,得到不少人的帮助,总算是有点心得。鉴于国内搞yaffs2文件系统方面的资料还是很少,就
2011-11-17 17:18:35
1244
转载 Linux下minicom的配置和使用方法
Linux下minicom的配置和使用方法安装配置minicom--------------------------------------------------# lsmod | grep usbserial(如果直接使用串口线,而没有用到USB转串口设备,此步可以跳过) 如果有usbserial,说明系统支持USB转串口。 安装minicom (Fed
2011-11-13 17:37:17
388
转载 查看ubuntu硬件信息
查看ubuntu硬件信息 1, 主板信息 .查看主板的序列号 -------------------------------------------------- #使用命令 dmidecode | grep -i 'serial number' #查看板卡信息 cat /proc/pci --------------
2011-11-12 17:10:46
4784
转载 dmidecode详解
1、DMI简介 DMI (Desktop Management Interface, DMI)就是帮助收集电脑系统信息的管理系统,DMI信息的收集必须在严格遵照SMBIOS规范的前提下进行。 SMBIOS(System Management BIOS)是主板或系统制造者以标准格式显示产品管理信息所需遵循的统一规范。SMBIOS和DMI是由行业指导机构Desktop Management Ta
2011-11-12 16:56:20
874
转载 minicom的使用和配置
本文系本站原创,欢迎转载!转载请注明出处:http://dreamlcr.cublog.cn/----------------------------------------------------minicom是linux下串口通信的软件,它的使用完全依靠键盘的操作,虽然没有“超级终端”那么易用,但是使用习惯之后读者将会体会到它的高效与便利,下面将讲解minicom的安装和配置。
2011-11-10 23:05:20
355
转载 linux下利用dnw烧写文件,dnw安装与配置
1.解压缩文件: # tar xvf dnw_for_linux.tar.gz 2.然后切换到下面的目录,编译usb驱动模块: # cd dnw_for_linux/secbulk # make -C /lib/modules/2.6.33.6-147.fc13.i686/build/ M=/home/lhc/Desktop/dnw_for_linux/secbulk/ modules
2011-11-10 22:50:14
842
转载 常用正则表达式
“^\d+$” //非负整数(正整数 + 0)“^[0-9]*[1-9][0-9]*$” //正整数“^((-\d+)|(0+))$” //非正整数(负整数 + 0)“^-[0-9]*[1-9][0-9]*$” //负整数“^-?\d+$” //整数
2011-10-07 21:52:45
301
转载 Linux设备模型 学习总结
转载自:http://blog.mcuol.com/User/lvembededsys/Article/6820_1.htm看LDD3中设备模型一章,觉得思维有些混乱。这里从整体的角度来理理思路。本文从四个方面来总结一些内容:1.底层数据结构:kobject,ks
2011-09-23 22:43:40
282
转载 《深入理解Linux内核》笔记4:软中断/tasklet/工作队列
软中断、tasklet和工作队列并不是Linux内核中一直存在的机制,而是由更早版本的内核中的“下半部”(bottom half)演变而来。下半部的机制实际上包括五种,但2.6版本的内核中,下半部和任务队列的函数都消失了,只剩下了前三者。本文重点在于介绍这三者之间的关系。(函数细
2011-09-15 17:18:56
360
转载 从一道面试题谈linux下fork的运行机制
感谢http://kb.cnblogs.com/page/76622/的文章!!!今天一位朋友去一个不错的外企面试linux开发职位,面试官出了一个如下的题目: 给出如下C程序,在linux下使用gcc编译:#include "s
2011-09-13 11:11:34
328
原创 Linux内核2.6和2.4中内核堆栈的比较
本文转自http://feizf.blogbus.com/logs/16835565.htmlLinux内核 2.4和2.6的进程内核堆栈和task描述符存储不太一样,这儿总结一下。在内核2.4中堆栈是这么定义的:union task_union {
2011-09-07 16:34:15
505
转载 50个c/c++源代码网站
50个c/c++源代码网站C/C++是最主要的编程语言。这里列出了50名优秀网站和网页清单,这些网站提供c/c++源代码。这份清单提供了源代码的链接以及它们的小说明。我已尽力包括最佳的C/C++源代码的网站。这不是一个完整的清单,您有建议可以联系我,我将欢迎您的建议,以进
2011-09-05 22:04:55
356
转载 container_of()宏的简要解析
在学习Linux驱动的过程中,遇到一个宏叫做container_of。该宏定义在include/linux/kernel.h中,首先来贴出它的代码:1. 439/**2. 440 * container_of - cast a member o
2011-08-30 20:19:33
385
转载 linux的物理内存空间与线性地址空间的的对应关系
在支持MMU的32位处理器平台上,Linux系统中的物理存储空间和虚拟存储空间的地址范围分别都是从0x00000000到0xFFFFFFFF,共4GB,但物理存储空间与虚拟存储空间布局完全不同。Linux运行在虚拟存储空间,并负责把系统中实际存在的远小于4GB的物理内存根据不同需
2011-08-24 09:59:49
1413
转载 高端内存与低端内存
高端内存是Linux中一个重要的概念,初涉Linux时曾经对这个概念非常迷惑。实际上这个概念比较简单,理解这个概念,需要追溯一下Linux的内存管理。 从前,CPU的地址总线只有32位,再早的就不再追溯了。32的地址总线无论是从逻辑上还是从物理上都只能描述4G的地
2011-08-23 18:03:52
1440
转载 关于linux内存管理
Linux的内存管理主要分为两部分:物理地址到虚拟地址的映射,内核内存分配管理(主要基于slab)。物理地址到虚拟地址之间的映射1、概念 物理地址(physical address) 用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。——这个概念应该是这几个概念中最好理解的一个,但是值得一提的是,虽然可以直接把物理地址理解成插在机器上那根内存本身,把内存看成一
2011-08-20 23:20:18
13434
1
转载 堆和栈的区别
堆(heap)和栈(stack)有什么区别??简单的来讲堆(heap)上分配的内存,系统不释放,而且是动态分配的。栈(stack)上分配的内存系统会自动释放,它是静态分配的。 由malloc或new分配的内存都是从heap上分配的内存,从heap上分配的内存
2011-08-20 12:22:30
1008
原创 逻辑地址、线性地址、物理地址和虚拟地址
逻辑地址、线性地址、物理地址和虚拟地址(转载)一、概念物理地址(physical address)用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。——这个概念应该是这几个概念中最好理解的一个,但是值得一提的是,虽然可以直接把物理地址理解成插在机器上
2011-08-20 12:19:33
1134
3
转载 物理地址与线性地址详解
1. Linear Space & Physical Space 在硬件工程师和普通用户看来,内存就是插在或固化在主板上的内存条,它们有一定的容量——比如64 MB。但在应用程序员眼中,并不过度关心插在主板上的内存容量,而是他们可以使用的内存空间——他们可以开发一个
2011-08-19 22:53:49
1840
转载 Linux内核的内存管理:分段和分页的区别
分段和分页其实都是一种对地址的划分或者映射的方式。两者的区别主要有以下几点:a) 页是信息的物理单位,分页是为实现离散分配方式,以消减内存的外零头,提高内存的利用率;或者说,分页仅仅是由于系统管理的需要,而不是用户的需要(也是对用户透明的)。段是信息的逻辑单位,
2011-08-19 20:49:38
1126
转载 Linux下cut命令用法详解(原创:frozen_sucker(冰棍))
有时我们经常会遇到这样一些问题:有一页电话号码薄,上面按顺序规则地写着人名、家庭住址、电话、备注等,此时我们只想取出所有人的名字和其对应的电话号码,你有几种方法可以实现呢 确实这种纵向定位的方式用常规办法难以实现,这时,cut就可以大显身手了。What’s cut?子曰:cut命令可以从一个文本文件或者文本流中提取文本列。
2011-06-21 10:58:00
317
50个从光盘启动的用法
2014-01-02
Linux下最好的100个软件
2014-01-02
Best Firefox Addons
2014-01-02
lfs详细步骤指导手册
2013-05-04
SlickEdit 16.0.3 linux 32bit 破解及说明
2011-12-09
Linux 101 Hacks 2nd Edition
2011-11-20
mkyaffs2image-128M源码
2011-11-17
mkyaffs2image-128M
2011-11-17
Linux下开发板下载工具 DNW 修正版
2011-11-17
wordpress简单使用说明(英文)
2011-10-04
windows xp 技巧小结(电子书pdf)
2009-03-26
注册表之天下无敌--电子书(xp)
2009-03-26
嵌入式Linux应用程序开发详解
2008-10-11
2005 年中国服务器操作系统 整体拥有成本研究报告
2008-10-11
硬盘安装Ubuntu 7.10
2008-10-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人