JuanA1的专栏

金字塔最底层之IT民工的技术点滴

简析Android对Linux内核的改动-(下)

2 、YAFFS2     不同于PC机(文件是存储在硬盘上的),手机使用FLASH作为存储介质。HTC的G1使用的是NAND FLASH——这种存储目前已经相当普及了,而且种类也颇多(如SLC、MLC等),存储密度也越来越高(已经出现几十GB大小的NANDFLASH),价格也

2011-07-31 16:24:48

阅读数:4401

评论数:5

简析Android对Linux内核的改动-(上)

现在Android已经很火了,我的一个哥们儿上个月找到一个Android应用开发的职位,月薪就有6K了,羡慕啊。这里分析下Android的内核结构,主要介绍Android和Linux之间的关系,以备以后可能的转型。大家都知道Android是基于Linux内核的操作系统,也曾经和L

2011-07-31 16:22:06

阅读数:9802

评论数:17

Boost学习系列4-事件处理(下)

合成器是一个重载了 operator()() 操作符的类。这个操作符会被自动调用,传入两个迭代器,指向某个特定信号的所有返回值。以上例子使用了标准 C++ 算法 std::min_element() 来确定并返回最小的值。    不幸的是,我们不可能把象 std::min_ele

2011-07-28 22:46:33

阅读数:3120

评论数:0

Boost学习系列4-事件处理(上)

一、概述    相信大家在听到术语“事件处理”时就会想到GUI:点击一下某个按钮,相关联的功能就会被执行。点击本身就是事件,而功能就是相对应的事件处理器。    当然这一模式的使用当然不仅限于GUI。一般情况下,任意对象都可以调用基于特定事件的专门函数。本章所介绍的Boost.S

2011-07-28 22:38:11

阅读数:4570

评论数:0

信号(Signal)与槽(Slot)-Qt中的典型机制

因为下一篇关于Boost的文章会涉及到事件处理的问题,里面用的是信号和槽的机制,先拿Qt里的这个机制预研一下。诶,Boost这是够厉害的,什么先进就包含什么!要知道我以前一直以为这是Qt的专利呢。当然,这也是大多数厉害的开源软件库的高人之处,像Qt这种GUI库也包含了很多数据库,

2011-07-25 22:09:50

阅读数:15250

评论数:5

Boost学习系列3-函数对象(下)

四、Boost.Lambda    匿名函数 - 又称为lambda函数 - 已经在多种编程语言中存在,但 C++ 除外。 不过在Boost.Lambda库的帮助下,现在在 C++ 应用中也可以使用它们了。   lambda 函数的目标是令源代码更为紧凑,从而也更容易理解。 以本

2011-07-25 21:10:51

阅读数:2714

评论数:0

Boost学习系列3-函数对象(上)

这次主要介绍的是函数对象,可能称为“高阶函数”更为适合。它实际上是指那些可以被传入到其它函数或是从其它函数返回的一类函数,在C++中高阶函数是被实现为函数对象的。本文将会介绍几个用于处理函数对象的Boost C++库。 其中,Boost.Bind可替换来自C++标准的著名的 st

2011-07-25 20:57:13

阅读数:4141

评论数:0

Linux内核同步方式剖析-(下)

自旋锁有两种可用的形式:完全锁(full lock)和读写锁。 首先看一下完全锁。    首先通过一个简单的声明创建一个新的自旋锁。这可以通过调用 spin_lock_init 进行初始化。清单 5 中显示的每个变量都会实现相同的结果。清单 5. 创建和初始化自旋锁

2011-07-24 20:09:35

阅读数:2898

评论数:0

Linux内核同步方式剖析-(上)

本文是从IBM Developerworks上转载的,的确是很不错的技术网站,有很多关于linux的文章。这篇讨论了 Linux 内核中可用的大量同步或锁定机制,这些机制为2.6.23版内核的许多可用方法提供了应用程序接口(API)。之前用的类似semTake/Give等函数都是

2011-07-24 20:02:16

阅读数:1420

评论数:0

万众期待,Linux 3.0内核发布!!(附下载地址)

上网无意间看到了令我相当兴奋的消息,3.0发布了!!在经历了短暂的延期后,3.0内核终于来了!Linux Kernel的上一个版本是2.6.39,也是2.6系列的第39次升级维护。从改进幅度上看,Linux Kernel 3.0其实完全可以叫做2.6.40,但这年头版本号为王,3

2011-07-24 17:22:55

阅读数:3276

评论数:1

Boost学习系列2-智能指针(下)

3.5、弱指针    前面的几种智能指针在不同场合可以独立使用,然而,弱指针只有在配合共享指针使用时才会有意义,见下面例子:#include #include #include #include DWORD WINAPI reset(LPVOID p)

2011-07-21 21:56:42

阅读数:6885

评论数:1

Boost学习系列2-智能指针(上)

一、概述最先讲的就是指针,这是C语言中,不少程序员害怕的东西,害怕的原因大多是因为不了解其初始化、调用、赋值和清除的方式,而智能指针则可以去除这个顾虑,在初始化时就已经预定了删除,排解了后顾之忧。1998年修订的第一版C++标准只提供了一种智能指针:std::auto_ptr,它

2011-07-21 21:27:37

阅读数:4161

评论数:1

Boost学习系列1-简介及基本用法

在做长字符串匹配、搜索的问题时,我想大家最先想到的应该就是使用正则表达式,简单、高效。而Boost的Regex库则是不得不提的,很早之前我就接触过了Boost的这个模块,也对Boost了解了一点点,只是觉得它很NB,没做深究。昨天在网上无意中看到了Highscore的Boost

2011-07-21 21:05:17

阅读数:3438

评论数:2

网络协议栈中你必须知道的专业词汇集合

最近移植在弄网络协议栈的移植,找了不少关于协议栈的资料,这个是一些专业词汇的总结,特此记录,以备查阅。1.几种数据交换方式、特点 线路交换:概念来源电话系统,硬件开关接通输入输出信号。延迟小,独享物理线路。需要建立线路,数据传送,释放线路三个步骤完成。 报文交换:不需建立连接线路

2011-07-21 20:11:39

阅读数:2325

评论数:0

算法的时间性能分析

算法的时间复杂度在PC机上开发可能关系不太大,但是到了嵌入式系统下,复杂度就变得很重要了,一个复杂度很高的程序会使得本来有限的资源变得更加拮据,本文系转载自longmans的网易博客,借此学习下复杂度的计算。 本文主要从四个方面分析算法的复杂度:一、算法耗费的时间和语句频度:

2011-07-21 20:10:13

阅读数:2412

评论数:0

CLNP-无连接网络协议的基本概念

最近被mmslite的移植弄得头大,由于之前接触的较少,把多线程的一块用POSIX的pthread搞定就看了好多的资料才完成,又发现BSD中没有获取MAC地址的接口(类似ioctl(..,SIOGIFHWADDR,..)的),弄着弄着,发现这个CLNP挺不错,像IP,这里先转个c

2011-07-19 21:03:24

阅读数:1931

评论数:0

基于BSD4.4的UDP通讯初探

前段时间在移植mmslite到vxWorks上,主要涉及到的修改为网络连接部分、多线程支持部分以及时间模块。这里主要阐述网络部分,其他的有时间会一一推出。由于之前是在windows上实现的,网络连接部分自然就是使用的socket和WSA了。然而和Unix系统一样,vxWorks使

2011-07-19 19:53:11

阅读数:2617

评论数:4

VC下遍历文件夹的两种方法

想找个能遍历文件夹的办法,找了下,大概有两种,列举如下第一种方法就是网上常见的一种方法:find(char * lpPath) {   char szFind[MAX_PATH];   WIN32_FIND_DATA FindFileData;   strcpy(szFi

2011-07-18 22:25:09

阅读数:16848

评论数:9

一个让高级C++程序员都会出错的题目

之前我好像在一个论坛上看到了,过太久了,不太记得了,今天翻出来,觉得挺经典的,就贴出来了。如下:这是一个比较典型的问题,很多人都会遇到,这也是一个在C++输入时经常遇到的一个问题。C++代码如下:#include 3.int main() 4.{ 5.

2011-07-16 22:35:27

阅读数:2371

评论数:6

回车('\r')和换行('\n'),坑爹的Windows

前段时间移植一个windows下的程序到vxWorks下,由于原程序要读取配置文件,所以我将它们一起放在了nor flash里,好不容易搞定了编译错误,一运行程序就出错,进去调试,发现读到的信息全是错的!!不会吧,细细一看,fopen读上来的字符串是这样的"First Line\

2011-07-16 08:38:53

阅读数:1799

评论数:2

提示
确定要删除当前文章?
取消 删除
关闭
关闭