- 博客(151)
- 资源 (20)
- 收藏
- 关注
原创 好文章收集
char * a, char ** a, char * a[], char a[][], char * a[][], char ** a[][], char * a [][][], and so on in memory http://blog.163.com/digoal@126/blog/static/163877040201271195312138/
2014-11-14 17:17:33
818
转载 进程与线程栈大小的调整(vsz 虚拟内存大小)
首先看一个现象,最近在嵌入式项目开发中发现的,下面是设备的内存总量及使用:总量是24M左右,项目主程序大小1M不到,但是在默认的系统环境设置下,程序运行起来后的top看起来是这样:VSZ的大小是221MB,所以计算出来的内存使用百分比是935.4% = 221MB/24MB.VSZ表示程序使用的总虚拟内存空间大小。在很久之前也曾遇到过同样的现象,只是当时没有去深
2014-11-06 15:53:28
19423
转载 pjsip win32启用视频通话
需要下载其他几个额外的库以及sdk来编译pjsip,使得其支持视频通话Windows SDK Update for Windows Vistahttp://www.microsoft.com/en-us/download/details.aspx?id=14477ffmpeg win32下的库http://ffmpeg.zeranoe.com/builds/
2014-11-04 14:44:52
6219
转载 Linux 下 socket 编程示例
本示例为 Client/Server 结构,通过代码演示 Client 如何建立连接,并向远程端发送数据;Server 端如何侦听系统连接请求,接收请求并建立连接,进而获取客户端发来的数据。代码虽短,却描述了整个通信过程,可对Linux 下 网络编程起个抛砖引玉的作用吧 :-) Client 端代码:---------------------------------------
2013-01-30 19:21:46
761
转载 完整的DM365软件环境搭建步骤
1、安装ubuntu安装大概10 分钟会自动检查站点,看个人网速,之后会出现下载语言包(如果选择汉语),点跳过就行了。同步时间也可以跳过。再过几分钟就安装完了。2、安装 vmtools最好先把光碟弹出,右键unmount,点install vmtools,安装完重启。3、安装 samba一、安装 sambasudo apt-get install sambasudo
2013-01-24 20:36:06
848
转载 手把手教你编写Linux设备驱动程序
Linux是Unix操作系统的一种变种,在Linux下编写驱动程序的原理和思想完全类似于其他的Unix系统,但它dos或window环境下的驱动程序有很大的区别。在Linux环境下设计驱动程序,思想简洁,操作方便,功能也很强大,但是支持函数少,只能依赖kernel中的函数,有些常用的操作要自己来编写,而且调试也不方便。以下的一些文字主要来源于khg,johnsonm的Write linux d
2012-12-03 16:05:25
788
转载 一分钟先生: 程序员面试真经
作为面试官,在面试程序员时,都会关注哪些问题?而程序员应该从哪些方面做好面试的准备?本期话题相信对面试官和程序员都会有所启示。刘秋伟 深圳市万兴软件有限公司研发总监与其他岗位相比,程序员相对来说会内向一些,思维也会更严谨、更有个性。企业招聘程序员就是要求他能和团队一起完成既定的开发任务,所以重点从技能水平、学习能力、团队合作及工作心态等几个方面考察程序员。技术水平是对程序员最基本的要求
2012-12-02 23:54:12
728
转载 C语言终极面试-----程序代码评价或改错
第二部分:程序代码评价或者找错1、下面的代码输出是什么,为什么?void foo(void){unsigned int a = 6;int b = -20;(a+b > 6) ? puts(“> 6″) : puts(“}这个问题测试你是否懂得C语言中的整数自动转换原则,我发现有些开发者懂得极少这些东西。不管如何,这无符号整型问题的答案是输出是 ">6″。原因是当表
2012-12-02 23:26:05
2141
原创 :/etc/profile
执行顺序为:/etc/profile -> (~/.bash_profile | ~/.bash_login | ~/.profile) -> ~/.bashrc -> /etc/bashrc -> ~/.bash_logout关于各个文件的作用域,在网上找到了以下说明:(1)/etc/profile: 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. 并从/etc/
2012-12-01 11:44:45
485
转载 交换函数的两种不同的实现方式------地址传递和引用参数
//________________________________//用地址传递的方式来实现两个数的交换//________________________________#include void swap(int *a, int *b){int temp; temp = *a;*a = *b;*b = temp;}void main()
2012-11-27 10:53:25
717
转载 热门智力题 过桥问题和倒水问题
过桥问题和倒水问题都是笔试面试中的热门智力题,不但微软、GOOGLE、百度、腾讯等公司采用,甚至在IQ测试与公务员考试中都能见到。本文不但教你如何快速用手算来解决这两种问题,并且教你如何用程序代码来计算这两种问题。绝对让你大有收获。一.过桥问题在漆黑的夜里,四位旅行者来到了一座狭窄而且没有护栏的桥边。如果不借助手电筒的话,大家是无论如何也不敢过桥去的。不幸的是,四个人一共只带了一只手电
2012-11-25 13:17:31
972
转载 微软面试智力题
A.逻辑推理 1、你让工人为你工作7天,给工人的回报是一根金条。金条平分成相连的7段 ,你必须在每天结束时给他们一段金条,如果只许你两次把金条弄断,你如何给你的工人付费? 2、请把一盒蛋糕切成8份,分给8个人,但蛋糕盒里还必须留有一份。 3、小明一家过一座桥,过桥时是黑夜,所以必须有灯。现在小明过桥要1秒, 小明的弟弟要3秒,小明的爸爸要6秒,小明的妈妈要
2012-11-25 13:07:04
534
转载 1602液晶模块使用归纳
对1602的操作只有两种,就是读和写,读可以分为读状态(状态寄存器)和读数据(RAM中的),写可以分为写指令和写数据(写入RAM中),所有的操作时序只要遵循下表即可。笔者在使用过程中出现了初始化不显示任何字符的情况,后来经过调试之后总结一些注意事项,在写出注意事项之前,先给出读写时序图,如下:给出了两张图之后就可以说明注意事项了:1)、观察时序图,读写的操作进行
2012-11-17 15:03:05
3738
原创 为什么要使用拉电阻
为什么要使用拉电阻: 1、当TTL电路驱动COMS电路时,如果TTL电路输出的高电平低于COMS电路的最低高电平(一般为3.5V),这时就需要在TTL的输出端接上拉电阻,以提高输出高电平的值。 2、OC门电路必须加上拉电阻,才能使用。 3、为加大输出引脚的驱动能力,有的单片机管脚上也常使用上拉电阻。 4、在COMS芯片上,为了防止静电造成损坏,不用的管脚不能悬空,一般接上拉电阻产生降低输入阻抗,
2012-11-17 11:29:03
522
转载 copy_to_user与mmap的工作原理
copy_to_user在每次拷贝时需要检测指针的合法性,也就是用户空间的指针所指向的地址的确是一段该进程本身的地址,而不是指向了不属于它的地方,而且每次都会拷贝一次数据,频繁访问内存,由于虚拟地址连续,物理地址不一定会连续,从而造成CPU的CACHE频繁失效,从而使速度降低mmap仅在第一次使用时为进程建立页表,也就是将一段物理地址映射到一段虚拟地址上,以后操作时不再检测其地址的合法性(
2012-11-15 23:21:48
1707
转载 BSP 面试总结
BSP 面试总结指针参数当指针作为函数参数时,对参数本身的修改并不影响原来的值,比如下面的代码,删除链表中第一个值为item的结点。但是结果却不正确。void Delete(Node*head,int item){if(head->value== item)head = NULL ;}这段代码的问题是,第一个参数是指针类型而head =
2012-11-04 23:05:48
1272
转载 跟我一起写Makefile【三】
六、多目标 Makefile的规则中的目标可以不止一个,其支持多目标,有可能我们的多个目标同时依赖于一个文件,并且其生成的命令大体类似。于是我们就能把其合并起来。当然,多个目标的生成规则的执行命令是同一个,这可能会可我们带来麻烦,不过好在我们的可以使用一个自动化变量“$@”(关于自动化变量,将在后面讲述),这个变量表示着目前规则中所有的目标的集合,这样说可能很抽象,还是看一个例子吧。
2012-11-03 17:30:26
630
转载 C++的虚基类,抽象类,虚函数,纯虚函数,virtual
http://hi.baidu.com/lewutian虚基类在说明其作用前先看一段代码class A{public:int iValue;};class B:public A{public:void bPrintf(){cout};class C:public A{public:void cPrintf(){cout
2012-11-03 17:28:00
502
转载 makefile讲解
http://xhbdahai.cublog.cn/详细讲解gun makefile的网址,摘录部分:1.1 Makefile的内容 一个完整的Makefile中,包含了5个东西:显式规则、隐含规则、变量定义、指示符和注释。关于“规则”、“变量”和“Makefile指示符”后续有详细讨论。本章讨论一些基本概念。显式规则:它描述了在何种情况下如何更新一个或者多个被称为目标的文件(Make
2012-11-03 17:25:17
538
转载 C++this指针
http://hi.baidu.com/lewutian一个对象的this指针并不是对象本身的一部分,不会影响sizeof(对象)的结果。this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。也就是说,即使你没有写上this指针,编译器在编译的时候也是加上this的,它作为非静态成员函数的隐含形参,对各成员的访问均通
2012-11-03 17:16:34
392
转载 c 经典100题
C经典100题(1)http://hi.baidu.com/lewutianc语言经典100题【实用】【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。 2.程序源代码:main(){int
2012-11-03 17:16:12
873
转载 Linux下的多线程编程
http://hi.baidu.com/lewutianhttp://blog.readnovel.com/article/htm/tid_509481.html1 引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程
2012-11-03 17:11:03
349
转载 C++学习要点
http://hi.baidu.com/lewutian1. 传指针时,我们可以通过指针来修改它在外部所指向的内容。但如果要修改外部指针所指向的对象是不可能的。例如传递外部指针到函数内来分配空间,必须传递指针的指针或指针的引用。2. char carry[10] = {0}; 编译器会将其后所有的东西都置0;3. 函数返回值为const时,返回的东西付给一个类型相同的标示后其不能为
2012-11-03 16:41:26
355
转载 c/c++内存划分 堆和栈
http://hi.baidu.com/lewutian 一、一个经过编译的C/C++的程序占用的内存分成以下几个部分: 1、栈区(stack):由编译器自动分配和释放 ,存放函数的参数值、局部变量的值等,甚至函数的调用过程都是用栈来完成。其操作方式类似于数据结构中的栈。 2、堆区(heap) :一般由程序员手动申请以及释放, 若程序员不释放,程序结束时可能由OS回收
2012-11-03 16:40:29
424
转载 C++ PrimerPlus部分知识点总结(1-12)(个人总结,仅供参考)
来源: 魏洪昌的日志 表: climits 中的符号常量 P40C++转义序列的编码 P48完全匹配允许的无关紧要转换 P2555种变量存储方式 P271coutcout.put(ch); 显示一个字符 P46cin 使用空白(空格、制表符和换行符)来定字符的界cin.getline() 将丢弃换行符 cin.getline(str,20)
2012-09-25 11:42:31
780
转载 C/C++基础 达内学习笔记
★C/C++基础1.编译器g++g++ -c 只编译不连接,生成.o文件g++ -o 修改编译后生成的文件的名字(默认为a.out)2.C++优点Supporting data abstractionObject-orientedContains all C featuresPortable and efficient as CCan be link
2012-09-18 10:02:53
3227
转载 C++ 对象的内存布局(上)
C++对象的内存布局(上)陈皓http://blog.youkuaiyun.com/haoel点击这里查看下篇>>>前言07年12月,我写了一篇《C++虚函数表解析》的文章,引起了大家的兴趣。有很多朋友对我的文章留了言,有鼓励我的,有批评我的,还有很多问问题的。我在这里一并对大家的留言表示感谢。这也是我为什么再写一篇续言的原因。因为,在上一篇文章中,我用了的示例
2012-09-17 09:41:52
459
转载 Linux上vi(vim)编辑器使用教程
2011年05月24日 上午 | 作者:VPServi(vim)是上Linux非常常用的编辑器,很多Linux发行版都默认安装了vi(vim)。vi(vim)命令繁多但是如果使用灵活之后将会大大提高效率。vi是“visual interface”的缩写,vim是vi IMproved(增强版的vi)。在一般的系统管理维护中vi就够用,如果想使用代码加亮的话可以使用vim。下面vps侦探整理
2012-09-11 13:05:40
748
转载 软件设计模式
来源: 李齐礼的日志一般模式有4个基本要素:模式名称(pattern name)、问题(problem)、解决方案(solution)、效果(consequences)。常见23种模式概述:1) 抽象工厂模式(Abstract Factory):提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。2) 适配器模式(Adapter):将一个类的
2012-08-18 12:15:40
551
转载 Linux设备驱动中的并发控制总结
并发(concurrency)指的是多个执行单元同时、并行被执行。而并发的执行单元对共享资源(硬件资源和软件上的全局、静态变量)的访问则容易导致竞态(race conditions)。SMP是一种紧耦合、共享存储的系统模型,它的特点是多个CPU使用共同的系统总线,因此可访问共同的外设和存储器。 进程与抢占它的进程访问共享资源的情况类似于SMP的多个CPU. 中断可打断正在执行的进程
2012-08-08 12:00:02
447
转载 Linux字符设备驱动总结
Linux2.6内核中使用cdev结构体描述字符设备:structcdev{structkobjectkobj;//内嵌的kobject对象,描述设备引用计数structmodule*owner;//所属模块,一般赋值为THIS_MODULEstructfile_operations
2012-08-08 11:59:20
535
转载 Linux设备驱动中的阻塞与非阻塞总结
阻塞与非阻塞访问是I/O操作的两种不同模式,前者在I/O操作暂时不可进行时会让进程睡眠。在设备驱动中阻塞I/O一般基于等待队列来实现,等待队列可用于同步驱动中事件发生的先后顺序。使用非阻塞I/O的应用程序也可借助轮询函数来查询设备是否能立即被访问。阻塞操作是指在设备操作时若不能获得资源则挂起进程,直到满足可操作的条件后再进行操作。被挂起的进程进入休眠状态,被从调度器的运行队列移走,
2012-08-08 11:57:51
1565
转载 Data-Structure 之一 二
Data-Structure 之一第1章 概论 数据结构讨论的是数据的逻辑结构、存储方式以及相关操作的实现等问题。本章讲述数据结构的基本概念及相关术语,介绍数据结构、数据类型和抽象数据类型之间的联系,介绍了算法的特点及算法的时间与空间复杂性。1.1数据结构 1.1.1数据结构 随着计算机软、硬件的发展,计算机的应用范围在不断扩大,计算机所处理的数据的数量也在不断
2012-08-08 11:56:34
1119
转载 const_cast,reinterpret_cast,static_cast,dynamic_cast
static_cast:用于非多态类型的转换。dynamic_cast:用于多态类型的转换。const_cast:用来消除const, volatile, __unaligned属性的转换。reinterpret_cast:用于空间的重新解释。1、C++中的static_cast执行非多态的转换,用于代替C中通常的转换操作。因此,被做为隐式类型转换使用。
2012-08-01 23:06:28
370
转载 揭开私有继承的面纱
什么是私有继承?以前在学校学习的时候,冥冥乎知道有这样一个东西,却没有仔细研究过。后来工作中用到Boost库才开始了解它。如果说保护继承大多是为了语言完整性的话,私有继承还是有一些用途的。私有继承 vs 公有继承公有继承继承的是接口与实现,它表示了类与类之间is-a的关系。而私有继承继承的仅仅是实现,它表示了has-a(或者is-implemented-in-terms-of)
2012-07-31 16:32:17
564
转载 5.多态性和虚函数
第五章 小 结(1) C++的多态性表现在它为编程者提供了运算符重载,函数名重载和虚函数等运行机制。运算符重载和函数名重载采用静态联编机制,而虚函数采用动态联编机制。(2) 运算符重载是把 C++本身提供的标准运算符重新在类中定义, 使标准运算符可作用于用户新定义的类对象,关键是在理解运算符表达式操作含义的基础上,定义一个运算符重载函数,并将运算符表达式转换成运算符重载函数调用的形
2012-07-31 15:54:30
486
转载 C++ 值传递、指针传递、引用传递详解
摘要: 最近写了几篇深层次讨论数组和指针的文章,其中提到了C语言中,所有非数组的形式参数传递均以值传递形式数组和指针背后内存角度语义"陷阱"---数组和指针而关于值传递,指针传递,引用传递这几个方面还会存在 ...最近写了几篇深层次讨论数组和指针的文章,其中提到了“C语言中,所有非数组的形式参数传递均以值传递形式”数组和指针背后——内存角度语义"陷阱"---
2012-07-28 17:48:00
644
转载 有关(int&)和(int)的区别
先看一段程序?123456789101112131415161718192021222324252627#include "stdafx.h"#include usingnamespace std;int _tmain(
2012-07-23 23:02:41
381
转载 C/C++中的引用和指针
引用又称 别名,它可以最为对象的一个名字,但它既不是对象的指针,也不是对象的副本。通过引用可以间接地操作对象,使用方式类似于指针,但不需要指针的语法。使用规则:1> 引用被创建的同时必须被初始化,(指针可以在任何时候被初始化int a = 12;int &b = a;//正确int &c;//错误2> 一旦引用被初始化,就不能改变引用
2012-07-23 20:46:08
540
转载 c++模板详解
c++ 模板分为2类:1. 函数模板格式:template 反回类型函数名(参数列表){函数体}比如:template void swap(T& a, T& b){}调用时:int a,b;swap(a,b);double d1,d2;swap(d1,d2);但是下面写法是错误的:swap(int,int):不能在函数调用的参数中指定模板
2012-07-23 20:22:24
368
x264-VC6.0编译通过加代码完整注释版.rar
2012-06-04
T264 X264 h264 VC 通过
2012-02-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人