- 博客(32)
- 资源 (20)
- 收藏
- 关注
原创 数据结构---队列的实现和个人分析
队列的一个显著的特征正好的和栈是相反的,它是按照先进先出(FIFO)的方式存储和检索元素,这就是说,对线插入队列的要先删除。还有就是队列是限制在两端进行插入和删除操作的线性表,允许进行存入操作的一端就叫“队尾”,允许进行删除操作的就是“对头”。当线性表中没有元素时,称为“空队“。那么,我们可以吧队列想象地理解成银行办理业务的一队人。 下面介绍顺序队列的定义和实现(以前写的代码)/*s
2012-12-31 15:48:14 2857
原创 数据结构----栈的实现和个人分析
通常来说,决定采用何种方式来检索数据是非常重要的,这样便于以后对数据检索时,数据会按照何种的方式顺序输出。栈是用于检索数据的一种常用方式。栈的一种显著的特征就是它按照后进先出(LIFO)的方式存储和删除数据元素。这就是说,最后一个存入栈中的元素将会被第一个删除。我们可以看下图的表示;栈的实现方法有2种,一种是顺序栈,一种是链式栈;下面先介绍下顺序栈的定义和实现(以前写过的代码)
2012-12-31 00:25:36 3252
原创 链表和数组的问与答
问:链表和数组各有自己的优越性,那么分别在什么情况下使用更适合? 当我们期望进行频繁的插入和删除时,链表比数组更有优势。然而,如果当我们期望进行随机访问的次数高于插入和删除操作的次数时,数组就显得更有优势了。随机访问时数组的强项,因为他们的元素在内存中是连续排列的。哲宗连续的排列方式使得数组中的任何元素能够在O(1)的时间内通过其索引访问。回顾一下访问链表中元素的方法,我们必须
2012-12-29 23:49:56 2469
转载 MD5 算法分析
/* md5.h */#ifndef _MD5_H_#define _MD5_H_#define R_memset(x, y, z) memset(x, y, z)#define R_memcpy(x, y, z) memcpy(x, y, z)#define R_memcmp(x, y, z) memcmp(x, y, z)type
2012-12-29 13:28:11 2274
转载 将 Linux 应用程序移植到 64 位系统上
Linux 是可以使用 64 位处理器的跨平台操作系统之一,现在 64 位的系统在服务器和桌面端都已经非常常见了。很多开发人员现在都面临着需要将自己的应用程序从 32 位环境移植到 64 位环境中。随着 Intel® Itanium® 和其他 64 位处理器的引入,使软件针对 64 位环境做好准备变得日益重要了。与 UNIX® 和其他类 UNIX 操作系统一样,Linux 使用了 LP64
2012-12-28 14:37:09 1795
转载 MD5算法
MD5加密算法 - MD5在线加密在一些初始化处理后,MD5以512位分组来处理输入文本,每一分组又划分为16个32位子分组。算法的输出由四个32位分组组成,将它们级联形成一个128位散列值。首先填充消息使其长度恰好为一个比512位的倍数仅小64位的数。填充方法是附一个1在消息后面,后接所要求的多个0,然后在其后附上64位的消息长度(填充前)。这两步的作用是使消息长度恰好是512位的整数倍
2012-12-27 11:26:58 1868
原创 Linux中的system函数详细分析
system()函数功能强大,很多人用却对它的原理知之甚少,我想大家如果知道了system的具体实现就不会对楼主程序在很多编译器中不能表现自己希望的功能感到费解了。我对linux中的实现比较了解,具体分析这个,windows中的类似就不详解了。好了,先看linux版system函数的源码:#include #include #include #include i
2012-12-26 09:57:20 2567 1
转载 操作系统内存分配原理(帖子中转载)
刚在浏览帖子的时候,看到这个帖子,对内存分配的原理讲得很透彻,看了一遍,还未理解透彻,特收藏下来,以后慢慢回味! 现象1 压力测试过程中,发现被测对象性能不够理想,具体表现为: 进程的系统态CPU消耗20,用户态CPU消耗10,系统idle大约70 2 用ps -o majflt,minflt -C program命令查看,发现majflt每秒增量为0,而minflt每秒增量大
2012-12-25 10:22:35 3960
转载 shell字符串的截取
shell字符串的截取的问题:一、Linux shell 截取字符变量的前8位,有方法如下: 1.expr substr “$a” 1 8 2.echo $a|awk ‘{print substr(,1,8)}’ 3.echo $a|cut -c1-8 4.expr $a : ‘\(.\\).*’ 5.echo $a|dd bs=1 count=8 2>/dev/
2012-12-24 13:36:23 2892
转载 Linux rpm 命令参数使用详解[介绍和应用]
RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的“添加/删除程序”rpm 执行安装包二进制包(Binary)以及源代码包(Source)两种。二进制包可以直接安装在计算机中,而源代码包将会由RPM自动编译、安装。源代码包经常以src.rpm作为后缀名。常用命令组合: -ivh:安装显示安装进度--install--v
2012-12-24 12:09:15 1497
原创 C 算法 -----链表在页帧和页面转换的应用
1 、单链表在页帧管理的应用 在一些支持虚拟内存的系统中有关链表的运用,虚拟内存是一种地址空间的映射机制,它允许进程不必完全加载到物理内存中也可以得到运行。这种方式的一个突出优点就是进程可以使用比熊实际所允许的物理内存大得多的地址空间。另外一个优点是多个进程能够共享的内存以并发的方式运行。 先简单的介绍Linux操作系统存储管理方式,Linux系统采用请求式分页虚拟内
2012-12-23 20:10:36 4615
原创 高级C数据类型
1、前言 指针、结构体、联合体、动态内存分配及类型名生命(typedef)是创建C数据类型和算法的基本元素。尽管这些是经常在代码中遇见的,但是其用法的规范性、效率及代码的优化行仍然是大部分程序员所忽视的。所有有必要和大家讨论下这些问题,以提高代码的编写质量。2、指针 指针在C语言中的用法大概可以分为以下几类: 创建链式数据结构 引用动态分配的数据结构
2012-12-19 23:10:22 1795
原创 此刻的心情
今天在群里看到和自己一起培训的学员,在公司工作一个多月的时候被公司辞退了!曾经还在一个宿舍里住过一个月,在培训的时候我并不看好他,基于2点:1是在培训中不按照老师的进度进行有效的学习,天天在看驱动!驱动本身就很难,对操作系统、硬件、汇编、C语言等等了解的人,直接去研究驱动,本人觉得很难入门!2是,在培训过程中,老师布置的作业也不认真完成,以至于在后面越来越跟不上,在项目中更别提了,都不是自己动手做
2012-12-19 22:11:11 1607 3
原创 C算法精解---链表(2)
前面对单链表和双链表的定义和抽象数据类型进行简单的介绍。下面介绍另外一种链表,循环链表。他提供了一种更灵活的遍历链表元素的能力,循环链表可以是单向的也可以是双向的。区分链表是循环链表的主要看他最后一个元素的next指针是不是指向的头元素。下面是以单向链表来介绍。循环链表的实现和分析:#ifndef CLIST_H#define CLIST_H#include /*defin
2012-12-19 21:33:56 2354
转载 精简Makefile
如果在Linux下玩不转Makefile,那你真out了,这应该是Makefile较为精华的部分,难得共享。 一、一个简单通用的Makefile例子1.编写源文件5个源文件:A.c B.c C.c D.c main.c5个头文件:A.h B.h C.h D.h main.h在同一目录,不同目录下,如果目录多,一般用autotools生成M
2012-12-19 18:04:23 1789
原创 C 算法精介----链表(1)
C算法 ---链表 链表是一种最为基础的数据结构,链表是由一组元素以一种特定的顺序组合或链接在一起的。在维护数据的集合时很有用途。在平时的数据处理过程中经常会会用链接进行数据的临时存储。但是如何才能使链表处理数据更加优化,下面简单介绍单链表处理情况! 链表反转 1 、单链表介绍 单链表是各个元素之间通过一个指针彼此连接起来而组成...
2012-12-14 23:02:38 4231 2
转载 嵌入式Qt开发环境搭建及移植到开发板----Qt学习笔记
整了好多天的Qt移植,今天终于弄出来了。记录一下学习过程,可把我闹心死了。先说说Qt源码包,我刚装Qt的时候非常乱,又有x11的,又有embedded的,还有everywhere的。现在明白了,安装x11,可以开发在pc机下运行的应用程序,并且会生成一些Qt开发工具designer和qvfb。安装embedded ,可以开发在开发板上运行的Qt应用程序。使用everywhere,需要解压三份,
2012-12-13 16:17:35 3711 17
转载 如何实现虚拟机与主机window的文件共享
安装samba,实现Ubuntu和windows文件共享答 : 本地安装: 1.成功安装samba软件包下的所有软件包 2.备份现有的配置文件 sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak 3.打
2012-12-13 14:55:38 2224
原创 北京我来了----我要奋斗----为了自己
2011年9月,告别了以前的同事,离开了河南南阳市,那个曾经奋斗过,但一点成就都没有的地方。离职有时候真的需要很大的勇气。现在回想,那是的自己真的是幸运。选择了离职,踏上北上的道路。投靠了在北京的朋友!现在回想真的感谢身边的朋友对我的帮助。北京真的是个很快速发展的地方,每个角落都是匆忙的人群。到北京的第二天,便去参加招聘会,一路的失望,机械设计专业在北京找工作,待遇水平不说,招聘的岗位都很考验人呀
2012-12-12 23:31:35 1651
转载 CLOSE_WAIT研究和端口复用存在弊端 ,TCP 三次握手及三次挥手
在网络通信中,经常会遇到这样的问题;当关闭正在通信的套接字时,然后在创建端口相同的套接字时,会出现ADDR被占用的错误提示,这时使用netstat -anp命令 会发现端口仍被占用。但是如果使用端口重用属性的话,可能会造成挤掉正在使用的端口的危险存在!在网络上找了下这篇文章,对CLOSE——WAIT的研究1 CLOSE_WAIT状态的生成原因CLO
2012-12-12 14:52:32 4783
转载 typedef用法总结
基本定义:typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。 在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。用途一:与#define的区别typedef 行为有点像 #define 宏
2012-12-12 12:45:30 1425
转载 一位软件工程师的6年总结
“又是一年毕业时”,看到一批批学子离开人生的象牙塔,走上各自的工作岗位;想想自己也曾经意气风发、踌躇满志,不觉感叹万千……本文是自己工作6年的经历沉淀或者经验提炼,希望对所有的软件工程师们有所帮助,早日实现自己的人生目标。本文主要是关于软件开发人员如何提高自己的软件专业技术方面的具体建议,前面几点旨在确定大的方向,算是废话吧。1、分享第一条经验:“学历代表过去、能力代表现在、学习力代表未来。”
2012-12-12 11:09:03 2634 3
转载 如何成功打造你自己的“个人品牌”
“21世纪的生存法则,就是建立个人品牌。”一个人只有拥有了自己的个人品牌才能更好地在社会立足,才能取得更加辉煌的成绩。所谓个人品牌是指个人拥有的外在形象或内在修养所传递的独特的、鲜明的、确定的、易被感知的对足以引起对群体消费认知及消费模式改变形成重大改变的整体性、长期性、基本性已经被显明或者即将被显明的影响力集合体。简而言之个人品牌,就是是指个人在他人头脑中持有的一种印象。也就是说,塑造个人品牌的
2012-12-11 09:38:31 3914
转载 程序员成熟的标志(转载)
程序员在经历了若干年编程工作之后, 很想知道自己水平到底如何? 自己是否已经成为成熟的程序员? 虽然程序员会对自己有一个自我评价, 但是, 自己的评价和社会的评价、专业的评价会有差异, 所以程序员自己并不能肯定这个评价。现实中, 除了各种证书之外, 很少有人会专门给出一个程序员的成熟度的评价。 人们往往是偶发性地就事论事地对程序员的工作作出好与不好, 行与不行的评论。 因此, 程序员对此感
2012-12-09 20:53:27 1467
转载 相信明天
我喜欢夏日这样的夜晚,日子是晴的,却依然有些风,微有凉意,然后在打开门窗的宿舍里,让背景音乐若有若无地响着;手中拿起一直想看而没有时间看的书,书页有时是自己翻的,有时是被风翻的,看一会儿,投入进去,又看一会儿,走走神,困了就打个盹,醒来再回忆:我看到哪了? 最近这段时间应该是大学里最惬意的日子,考试早已结束,只剩下水分很大的实习,看着大四毕业生摆出的市场渐渐不再热闹,也看得出他们
2012-12-09 20:08:32 1308
转载 为你的生命多积累一些厚度
刚在论坛看到这个题目觉得写得很好,就想转到自己的博客中,便在网上搜索个这个文章。 2012对于我来说是个转折,这一年实现了从机械结构设计师到Linux C语言开发师的转变。也算是成功的转行吧,但是自己已经处在20岁的尾巴上,现在唯一对我来说的,就是最快积累经验。目前还是单身,兜里的票子永远赶不上自己的花销。迷茫中。对于这次转变下了很大的决心,身边的朋友也一直在劝说我,因为自己要脱产参加
2012-12-09 14:42:32 1854
原创 shell 函数的参数和返回值
先来个例子吧!大家先想下回打印出什么“示例1:#!/bin/sh check(){ local rc=0 if [ $rc -eq 0 ];then echo hello return 10 fi}if check;then echo "return is 0"else echo "return is 201"fi
2012-12-07 18:07:48 3364
原创 递归函数
一、基本的递归函数 首先先来了解下C程序在内存中的组织方式,基本上来说一个可执行的程序在内存中有4个区域组成:代码段、静态数据区、堆与栈。代码段包含程序运行时所执行的机器指令;静态数据区是包含在程序的生命周期内的一直持续的数据,比如全局变量和静态的局部变量;堆包含程序运行过程中动态分配的存储空间。栈是函数调用过程中所使用的信息。 当C程序调用一个函数是栈会分配一个
2012-12-06 23:14:52 4112 5
转载 浅谈尾递归的优化方式
浅谈尾递归的优化方式 尾递归的循环优化尾递归,即是递归调用放在方法末尾的递归方式,如经典的阶乘:int FactorialTailRecursion(int n, int acc){ if (n == 0) return acc; return FactorialTailRecursion(n - 1, acc * n);}由于递归在方法
2012-12-06 22:32:31 1508
转载 尾递归与Continuation
尾递归与Continuation 递归与尾递归关于递归操作,相信大家都已经不陌生。简单地说,一个函数直接或间接地调用自身,是为直接或间接递归。例如,我们可以使用递归来计算一个单向链表的长度:public class Node{ public Node(int value, Node next) { this.Value = valu
2012-12-06 22:26:29 1430
原创 嵌入式Linux中让应用程序自动启动(转载)
在很多嵌入式系统中,由于可用资源较少,常常在系统启动后就直接让应用程序自动启动,以减少用户操作和节省资源。如何让自己的应用程序自动启动呢? 在Linux系统中,配置应用程序自动启动的方法有以下三种:1.通过/Linuxrc脚本直接启动Linux内核一旦开始执行,它将通过驱动程序来初始化所有硬件设备,这个初始化过程可以在启动时的PC显示器上看到,每个驱动程序都打印一些相关信息。初始化完
2012-12-04 15:35:15 1589
原创 C算法-------指针操作
在语言中,指针的重要ixng不言而喻,但很多时候指针被认为是一把双刃剑。一方面,指针是构建数据结构和操作内存的精确而高效的,另一方面,指针是有很容易被程序员误操作,从而造成不必要的BUG。1 、 存储空间分配 当生命一个指针时,通常情况下会分配一个字长的存储空间;当生命一个指针时,仅仅只是为指针本身分配了空间,并未有给指针所指向的数据分配空间,而为数据分配存储空间有两
2012-12-02 15:28:31 2546
redis设计与实现 第二版 高清 带标签 PDF文档.zip
2019-07-22
linux VIM 配置文件
2014-12-02
live555项目Vs2010编译环境搭建及源码
2014-09-06
ubuntu apt-get 软件源局域网或公网设置
2014-06-25
易宝支付PHP代码
2013-09-07
XPath基础教程
2013-08-31
PJSIP 开源代码及文档
2013-01-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人