自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 资源 (5)
  • 收藏
  • 关注

转载 Perl中的正则

Perl 程序中,正则表达式有三种存在形式分别是(1 模式匹配:m//     #平时我们简写 // ,略去m,三个参数/i不区分大小写   /s匹配任何字符    /x添加空格  /o 不重复编译正则表达示(2 模式替换:s/// /g    进行全局替换           \U     大小写转换,例如s/(fred|barney)/\U$1/

2016-06-28 21:12:50 539

转载 如何在C语言中调用shell命令

1、system(执行shell 命令)相关函数 fork,execve,waitpid,popen表头文件 #include定义函数 int system(const char * string);函数说明 system()会调用fork()产生子进程,由子进程来调用/bin/sh-cstring来执行参数string字符串所代表的命令,此命令执行完后随即返回原调用的

2016-06-28 21:10:32 442

原创 Android手机运行c/c++程序

android手机可以运行C/C++可执行程序具体运行使通过adb将可执行文件通过adb push命令上传到Android手机上adb push elf_file /data/push_filechmod 777 elf_file     // 设置成可执行具体步骤1 编写c源文件2 编写Android.mk文件,用于编译c文件生成在Android手机上可以执行的文件

2016-06-21 20:19:03 9593

转载 Android.mk文件

Android.mk 文件通常以以下两行代码作为开头: LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS)这两行代码的作用是:设置当前模块的编译路径为当前文件夹路径。清理(可能由其他模块设置过的)编译环境中用到的变量。为了方便模块的编译,Build 系统设置了很多的编译环境变量。要编译一个模块,只要在编译之前根据

2016-06-21 11:17:57 1456

原创 Android生成的img文件及对应的MTK烧写的img文件

Android编译后会生成ramdisk.img,system.img,userdata.img三个文件,介绍如下:ramdisk.img:在启动时将被 Linux 内核挂载为只读分区,它包含了 /init 文件和一些配置文件。它用来挂载其他系统镜像并启动 init 进程。其实ramdisk.img的内容就是/out/target/product/generic/root目录的压缩

2016-05-19 16:32:16 2560

原创 面向对象编程2

如果一个类始终只创建一个实例,则这个类成为单例类。把构造器用private修饰,提供一个public方法来调用构造器用于创建对象。且此方法需要用static修饰,因为调用该方法前还不存在对象,故只能通过类来调用,还需要定义一个成员变量来保存创建的对象,由于需要被上面的静态成员函数访问,故也需要用static修饰。class Singleton{private static Single

2015-12-29 23:05:01 267

原创 面向对象编程

面向对象编程三个基本特征:继承、封装和多态结构化程序设计里最小的程序单元是函数,每个函数完成一个功能。面向对象程序设计里最小程序单元是类。结构化程序设计的两个局限:1 设计不够直观,与人类习惯性思维不一致 2 适应性差,可扩展性不强,采用的是自顶向下的设计方式,维护成本高。判断一门语言是否是面向对象,通常可以使用继承和多态加以判断。“面向对象”和“基于对象”都实现了封装的概念。类之

2015-12-27 23:15:55 393

原创 JAVA语言概述

JAVA是一门非常纯粹的面向对象编程语言,摈弃了C++难以理解的多继承、指针等概念,因此具有功能强大和简单易用两个特征。是静态面向对象编程语言的代表JAVA由Sun公司开发。在JAVA语言出现之前,互联网网页实质就像一张纸,没有任何动态的内容。有了JAVA语言之后,浏览器的功能被扩大了,Java可以直接在浏览器里运行,可以直接与远程服务器交互。可以在互联网上像传送电子邮件一样传递程序文件。

2015-12-26 15:09:10 3959

转载 设计模式C++实现(1)——工厂模式

软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书。本文介绍工厂模式的实现。       工厂模式属于创

2015-09-11 21:44:24 387

转载 【Linux学习】epoll详解

什么是epollepoll是什么?按照man手册的说法:是为处理大批量句柄而作了改进的poll。当然,这不是2.6内核才有的,它是在2.5.44内核中被引进的(epoll(4) is a new API introduced in Linux kernel 2.5.44),它几乎具备了之前所说的一切优点,被公认为Linux2.6下性能最好的多路I/O就绪通知方法。 epol

2015-09-11 21:00:14 297

转载 合并整理最短摘要生成算法

来源:http://www.cnblogs.com/pangxiaodong/archive/2011/09/08/2171551.htmlhttp://www.cnblogs.com/jack204/archive/2012/09/03/2668667.html编程之美--最短摘要生成题目:Alibaba笔试题:给定一段产品的英文描述,包含M个英文字母

2015-09-03 20:44:00 802

转载 6天通吃树结构—— 第五天 Trie树

很有段时间没写此系列了,今天我们来说Trie树,Trie树的名字有很多,比如字典树,前缀树等等。一:概念     下面我们有and,as,at,cn,com这些关键词,那么如何构建trie树呢?从上面的图中,我们或多或少的可以发现一些好玩的特性。      第一:根节点不包含字符,除根节点外的每一个子节点都包含一个字符。      第二:从根节点到某

2015-08-27 23:28:01 274

转载 对Linux堆内存释放的总结

Linux用户进程是如何释放内存的Linux进程使用内存的基本流程:    见图1从图中我们可以看出,进程的堆,并不是直接建立在Linux的内核的内存分配策略上的,而是建立在glibc的堆管理策略上的(也就是glibc的动态内存分配策略上),堆的管理是由glibc进行的。所以我们调用free对malloc得到的内存进行释放的时候,并不是直接释放给操作系统,而是还给了glibc的堆管

2015-08-24 15:19:12 1146

转载 从优化到再优化,最长公共子串

最长公共子串(Longest Common Substring)是一个非常经典的面试题目,在实际的程序中也有很高的实用价值,所以把该问题的解法总结在本文重。不过不单单只是写出该问题的基本解决代码而已,关键还是享受把学习算法一步步的优化,让时间和空间复杂度一步步的减少的惊喜。概览最长公共子串问题的基本表述为:给定两个字符串,求出它们之间最长的相同子字符串的长度。

2015-08-09 22:13:02 284

转载 小项目实用makefile

本文,主要总结一下小项目中的一种实用makefile写法,为个人项目或小型项目makefile提供参考。                1. 单个源码文件的makefile        常规的教程,或网上资料,都会以单个源码文件的makefile为示例,讲解makefile的最基本用法。它的用处,除了知道一下all、clean外,无它。        makefile,主要用于管

2015-08-03 14:05:35 323

转载 Mongoose源码剖析:外篇之web服务器

引言在深入Mongoose源码剖析之前,我们应该清楚web服务器是什么?它提供什么服务?怎样提供服务?使用什么协议?客户端如何唯一标识web服务器的资源?下面我们抛开Mongoose,来介绍一个web服务的这些通性。web服务器:通常是指一个计算机程序(web服务器是什么?),在World Wide Web上提供诸如web页面的服务(提供什么服务?),使用HyperText Transfe

2015-07-12 14:56:55 360

转载 [珠玑之椟]随机数函数取样与概率

[珠玑之椟]随机数函数取样与概率  本节主要受到《编程珠玑》第12章随机取样问题的启发,但不仅仅限于随机取样问题,进一步地,研究讨论了一些在笔试面试中常见的和随机函数以及概率相关的问题。  阅读本文所需的知识:    1.对C语言中或其他语言中等价的rand()、srand()有所了解。本文不讨论种子的设定和伪随机数的问题;    2.中学或以上水平的概率基本概念。  

2015-07-11 20:48:48 364

转载 取样问题 总数n事先不知道,等概率取样 (编程珠玑chapter12 课后题10)

摘录三篇主题相关博文如何在事先不知道文本文件行数n的情况下读取该文件,从中随机选择并输出一行?(事先不知道n的大小,但是一次可以看到这n个对象)即蓄水池抽样(Reservoir Sampling)问题证明如下:    问题: 证明当前任意一行为取出行的概率为1/i,i为当前扫描到的行号,也即每一行取出的概率相等   我们用数学归纳法来证明,

2015-07-11 20:31:46 492

转载 (void)0的理解

(void)0 (+;) is a valid, but 'does-nothing' C++ expression, that's everything. It doesn't translate to the no-op instruction of the target architecture, it's just an empty statement as placeholder whe

2015-07-03 20:59:24 578

转载 结构体内部偏移的妙用

结构体内部偏移的妙用作者:冯老师,华清远见嵌入式学院讲师。C语言中对结构体的处理是严格的按照定义顺序来进行内存分布,所以我们可以利用这一点来十分方便地通过结构体内部的地址偏移来遍历或赋值每一个成员。下面用一个程序的片段来说明这个问题:1.需求程序的任务是从文件中按照固定格式读取学生的基本成绩信息并完成排序。文件中存储的格式如下:                James

2015-06-23 22:10:05 490

转载 linux驱动工程面试必问知识点

一:说明一看就知道,找工作用的,主要想从事驱动方面的开发工作,当然追求linux的道路还很漫长,先说说面试,面试了4家跟驱动相关的公司,只有一家(深圳中微电科技有限公司)让我佩服(还是通过电话面试的),工程师问的问题其实也不难,平时看书的朋友都大概知道(只是不能全面的回答罢了,所以写这个原因就是把它尽量搞清楚,下次在碰到类似的问题,就可以滔滔不绝了),其他3家的工程师,没有问一个驱动的方面

2015-06-13 15:55:54 764

转载 几个Linux驱动面试题

这几天面试几个想做安卓Linux驱动的,总体感觉上驱动基础还是比较薄弱,大部分情况是虽然做过驱动,但是基本上都是采用内核现成的,或者是开发板上已经有的,单独写过模块驱动很少,驱动机制理解不是很透彻.以下是几个随口问过的基础问题,供参考.1、字符型驱动设备你是怎么创建设备文件的,就是/dev/下面的设备文件,供上层应用程序打开使用的文件?2、写一个中断服务需要注意哪些?如果中断产生之

2015-06-13 15:50:02 1842

转载 Linux内核与驱动面试要点

1. 实际经验:所开发驱动程序或内核模块的来龙去脉(需求、设计思想、实现方法、要点难点,特别是硬件调试过程中所遇到的特殊情况),所修复BUG的现象、调试手段、原因分析和解决方案。2. 驱动调试:内核的调试手段、应用程序的调试手段(内核Panic所dump的信息以及Panic的分析、应用程序core dump的分析)。3. 驱动基础:mknod与udev,module相关API,内核

2015-06-13 15:38:15 3350

转载 rand(),srand()产生随机数

rand(),srand()产生随机数      rand()函数可以用来产生随机数,但是这不是真真意义上的随机数,是一个伪随机数,是根据一个数,我们可以称它为种子,为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数,当计算机正常开机后,这个种子的值是定了的,除非你破坏了系统,为了改变这个种子的值,C提供了 srand(

2015-06-10 23:19:07 478

转载 _cdecl 和_stdcall

_cdecl 是C Declaration的缩写,表示C语言默认的函数调用方法:所有参数从右到左依次入栈,这些参数由调用者清除,称为手动清栈。被调用函数无需要求调用者传递多少参数,调用者传递过多或者过少的参数,甚至完全不同的参数都不会产生编译阶段的错误。_stdcall 是Standard Call的缩写,是C  的标准调用方式:所有参数从右到左依次入栈,如果是调用类成员的话,最后一个入栈

2015-06-02 15:02:24 317

转载 __cdecl __stdcall区别

1. __cdecl__cdecl 是C Declaration的缩写(declaration,声明),表示C语言默认的函数调用方法:所有参数从右到左依次入栈,由调用者负责把参数压入栈,最后也是由调用者负责清除栈的内容,一般来说,这是 C/C++ 的默认调用函数的规则,MS VC 编译器采用的规则则是这种规则2. __stdcall_stdcall 是StandardCall的缩写,是

2015-06-01 23:15:08 354

转载 c++类的成员函数的调用

我知道C++有一个虚函数列表,对象有指向虚函数列表的指针,对于有虚函数的类对象调用虚函数时通过虚函数列表里面的指针实现的。。但是对于普通的非虚函数是怎么实现调用的呢、? 是怎么找到非虚函数的入口地址? 好像类对象里面只有类的一些数据成员。。求解惑 求详细的内存层次的变化分享到:2013-09-10 20:39提问者采纳

2015-05-28 16:08:15 2354 1

转载 C++中类的内存空间大小(sizeof)分析

那么在C++中的类的内存空间大小又有哪些特殊的问题呢?    首先,我认为对齐肯定也是其中的问题之一,对齐主要是为了加快读取的速度。    关于对齐这个我认为基本上已经是操作系统内定好的,既然Linux与Windows存在差别,那么在C++的类中,关于对齐肯定也会存在一定的差别。关于对齐我认为只要记住平时使用的系统的对齐准则就可以了,即:在Windows中经常是以结构体重最大内置类

2015-05-28 16:07:15 1951

转载 leetcode之 Generate Parentheses

题目:http://oj.leetcode.com/problems/generate-parentheses/描述:给定一个非负整数n,生成n对括号的所有合法排列。解答:该问题解的个数就是卡特兰数,但是现在不是求个数,而是要将所有合法的括号排列打印出来。       该问题和《编程之美》的买票找零问题一样,通过买票找零问题我们可以知道,针对一个长度为2n的合法排列

2015-05-24 21:42:32 311

转载 Linux内核访问外设I/O资源的方式 地址映射

我们知道默认外设I/O资源是不在Linux内核空间中的(如sram或硬件接口寄存器等),若需要访问该外设I/O资源,必须先将其地址映射到内核空间中来,然后才能在内核空间中访问它。 Linux内核访问外设I/O内存资源的方式有两种:动态映射(ioremap)和静态映射(map_desc)。 一、动态映射(ioremap)方式 动态映射方式是大家使用了比较多的,也比较简单。即直

2015-05-19 15:38:50 536

转载 S3C2410下寄存器地址虚实映射的实现

我们知道在我们的驱动里面一般操作的寄存器的地址都是虚拟地址, 然而一般在cpu的datasheet里描述的寄存器的地址都是物理地址, 那linux内核是如何把我们驱动中指定操作的虚拟地址转换成正真可寻址并操作的物理地址的呢? 这篇文档以s3c2410为例, 将详细的描述这么一个实现流程。通过这篇文章,将能够很好了解的虚实映射的过程。(本篇文章并非本人原著,只是整理以提供给大家交流学习。分析的不错)

2015-05-19 14:25:56 589

转载 轻松搞定面试中的链表题目

版权所有,转载请注明出处,谢谢!http://blog.youkuaiyun.com/walkinginthewind/article/details/7393134链表是最基本的数据结构,面试官也常常用链表来考察面试者的基本能力,而且链表相关的操作相对而言比较简单,也适合考察写代码的能力。链表的操作也离不开指针,指针又很容易导致出错。综合多方面的原因,链表题目在面试中占据着很重要的地位。本文

2015-05-12 20:09:28 284

转载 轻松搞定面试中的二叉树题目

版权所有,转载请注明出处,谢谢!http://blog.youkuaiyun.com/walkinginthewind/article/details/7518888树是一种比较重要的数据结构,尤其是二叉树。二叉树是一种特殊的树,在二叉树中每个节点最多有两个子节点,一般称为左子节点和右子节点(或左孩子和右孩子),并且二叉树的子树有左右之分,其次序不能任意颠倒。二叉树是递归定义的,因此,与二叉树有关

2015-05-10 22:44:47 269

转载 最大堆 最小堆 poj2442 STL堆的使用

最大堆最小堆代码实现http://blog.youkuaiyun.com/xiaoxiaoxuewen/article/details/7570621最大堆 最小堆原理图http://www.cnblogs.com/wu8685/archive/2010/12/30/1922218.htmlSTL 的堆操作http://hi.baidu.com/solofancy/

2015-05-10 20:14:27 297

转载 uboot的Makefile分析之顶层config.mk

顶层目录下的config.mk文件主要完成如下功能的配置:1、确定生成可执行文件过程中需要的各种工具,如编译器(arm-linux-gcc)、连接器(arm-linux-ld)、反汇编器(arm-linux-objdump)等2、确定CPU、板相关的配置文件,存在于各个目录下的config.mk3、确定编译、链接、转换等过程的操作选项4、根据步骤3确定的编译连接选项生成需要的文

2015-04-27 14:30:55 564

转载 uboot笔记之makefile分析

开始学习uboot,对于linux我还是个新手,在这只是对学习uboot做下笔记,文中错误之处请谅解。使用的uboot版本是2009.11。  要了解一个linux工程,一般要大致看懂它的makefile文件,我在学习uboot时也是先从其Makefile文件看起的,uboot的主Makefile就有三千多行,还有其他子文件夹中的Makefile。如果想我一样对linux还是个

2015-04-27 14:28:24 243

转载 基于优龙FS2410开发板u-boot-1.1.6的移植(NAND FLASH) (三)

首先引用《嵌入式系统 Boot Loader 技术内幕》的一段话:Boot Loader 的设计与实现是一个非常复杂的过程。如果不能从串口收到那激动人心的"uncompressing linux.................. done, booting the kernel……"内核启动信息,恐怕谁也不能说:"嗨,我的 boot loader 已经成功地转起来了!" 我对此深有体会,这就

2015-04-26 20:10:05 492

转载 基于优龙FS2410开发板u-boot-1.1.6的移植(NAND FLASH) (二)

本文实现u-boot的写操作,实验过程中,参考了网上资料,列举如下:         《uboot1.1.4移植》网址:     http://hi.baidu.com/edaworld/blog/item/c40f83a8a2e6d1b5cb130cca.html     《uboot for s3c2410 nandboot 使用saveenv保存环境变量》网址:     ht

2015-04-26 20:06:38 416

转载 基于优龙FS2410开发板u-boot-1.1.6的移植(NAND FLASH) (一)

原文地址:http://bbs.ednchina.com/BLOG_ARTICLE_179329.HTM买到开发板之初,就开始移植u-boot,问题多多,加上扳子硬件烧写出了问题,折腾半个多月,放弃,一种挫败感久久不能抹去;偶然间发现扬创开发板“基于u-boot移植修改完善”的utu-bootloader,买之,回来打开光盘一看,暂不提供u-boot移植源代码。凭着职业的冷静,我克制住,和

2015-04-26 20:03:35 388

转载 如何来写自己的ls命令

如何来写自己的ls命令作者:王老师,华清远见嵌入式学院讲师。很多实际证明,最好的学习方法是将相关的知识点应用到具体的例子中。这样我们不仅知道了原理,也学会了怎么应用。在学习文件IO时,我们可以尝试来写ls命令。所以在写ls命令之前,我们必须要明确ls命令能做些什么,然后才能知道要怎么去写ls命令。其实ls的参数选项很多,大多也可以组合使用。我们必须明确实现自己的ls

2015-04-17 23:18:42 529

数字图像处理第二版(冈萨雷斯)

冈萨雷斯的《数字图像处理(第二版)》,经典,讲解深入浅出,学图像处理必备教科书,值得拥有。

2014-05-05

区域分裂-合并算法程序

用c++实现了数字图像处理中的区域分裂-合并算法,并在图像上验证了算法的正确性,能用。

2014-05-05

c语言经典编程实例100题+答案

一共有100个c语言经典的例子,是c语言非常好的学习资料,有参考答案。

2014-04-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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