自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

MoMo的奋斗

记录一个猿的成长史

  • 博客(40)
  • 收藏
  • 关注

原创 make的使用和Makefile的编写

标签: Linux C/C++开发简介make使用基本构成流程说明文件的构成说明伪目标特殊目标搜索目录使用变量使用条件语句使用库make参数命令行简介make:维护程序模块关系和生成可执行程序的工具makefile:定义了整个项目的编译规则,定义了模块间的依赖关系,指定文件的编译顺序和编译使用的命令make从makefile文件中获取模块间的依赖关系,判断哪些文

2016-12-29 12:43:36 11059

原创 Linux文件操作

文件

2016-12-29 12:42:05 492

原创 c语言入门

十秒钟入门今天我们来了解一下c,那么问题来了:什么是C呢? 我不会告诉你一段文字,我只会说下面就是C#include <stdio.h>int main() { //这是一行注释,就是不会被执行,用来作为提示信息的 /* 这是多行注释 你可以添加你的代码了,当然不是在注释里面。 */ return 0;}看到了吧!头文件,主函数,如果你是刚开始了解

2016-12-06 22:52:19 403

原创 GitHub入门

前序前序:Git是一个分布式的版本控制系统(用于跟踪文件随时间变化状态)GitHub是一个网站,用来存储Git库GitHub提供: 一个用以共享库的集中位置基于web的界面分叉:合作拉请求:合作提出问题:记录缺陷或指定新的功能维基,等优点:撤销改动改动原因记录多种分之流术语:提交:任何时候的修改都会保存到Git的历史记录提交消息:每次提交时,需要提供消息(为什么改动)

2016-12-06 21:11:28 285

原创 Libevent学习

简述目的构成库说明内存管理使用创建event_base说明建立检查event_base后端的方法释放设置event_base优先级在fork之后重新初始化event_base与事件循环一起工作运行循环事件简述Libevent适用于编写告诉可一直非阻塞IO应用的库目的可移植性速度可扩展性方便构成:

2016-08-19 10:55:35 852

原创 XML学习

XML 被设计用来结构化,传输和存储数据。HTML 被设计用来显示数据。XML 是对 HTML 的补充XML 用于传输数据,而 HTML 用于格式化并显示数据。XML 没什么特别的。它仅仅是纯文本而已。有能力处理纯文本的软件都可以处理 XML。

2016-08-10 08:36:30 388

原创 python网络编程

使用时需要导包import socketsocket使用时都被绑定到一个特定IP地址和端口端口0~65535, 小于1024的都是网络服务中所保留的,socket.gethostname()返回运行程序所在的计算机的主机名:socket.gethostbyname(name) 尝试将给定的主机名解释为一个IP地址socket.gethostbyname_ex(name),它返回一个包含三个

2016-08-08 15:36:11 373

原创 strncpy函数学习

原型: char* strncpy(char* string1, char* string2, int n)说明:用字符串string2的前n个字符覆盖字符串string1的前n个字符,如果string1本来有数据,会被覆盖返回值类型: 返回覆盖后字符串的指针,也就是string1的指针int main(){ char a[] = "123456789"; char b[]

2016-08-05 13:07:03 438

原创 strcpy函数学习

函数原型:int strcpy(char* string1, char* string2)功能: 复制字符串string2内容到string1中注: 如果string1中原来有数据,则会被string2覆盖掉如果string1长度大于string2长度,则会把string1前面的部分覆盖上string2的数据,而长度大于的部分还保留为原来的数据。int main(){ char

2016-08-05 12:15:55 281

原创 Django学习

感谢自强学堂提供教程: http://www.ziqiangxuetang.com/django/django-intro.html一下为个人学习简述全览 文件 说明 urls.py 网址入口,关联到对应的views.py中的一个函数(或者generic类),访问网址就对应一个函数。 views.py 处理用户发出的请求,从urls.py中对应过来, 通过渲染templat

2016-08-05 12:00:06 237

原创 C/C++字符串学习

字符串学习相关库函数字符串的实现字符串的模式匹配字符串的存储方式字符串学习1. 相关库函数#include 2. 字符串的实现3. 字符串的模式匹配4. 字符串的存储方式

2016-08-03 08:12:09 343

原创 排序算法剖析

1. 选择排序时间复杂度O(n^2)进行size次长度每次从size递减一次的遍历,每次查找当前遍历中最小的值稳定void sort(int a[], int begin, int end) { for (int i=begin; i<end-1; i++) { for (int j=i+1; j<end; j++) { if (a[i] >

2016-08-02 16:19:20 189

原创 MySQL优化

使用 status信息对mysql进行具体的优化。mysql> show global status //可以列出服务器运行的各种状态值mysql> show variables; 查询服务器配置信息执行时间超过2秒即为慢查询 mysql> show variables like ‘slow%’;慢查询时间设置不宜过长,最好5秒之内如果mysql是主-从结构,可以考虑打开其中一台从服务器的

2016-08-02 00:55:54 278

原创 JavaScript学习

JavaScript入门篇学习能做什么JavaScript进阶篇学习1.JavaScript入门篇学习能做什么增强页面动态效果实现页面与用户之间的实时,动态交互使用之间之间的是文本类型,javascript告诉浏览器里面的文本属于JavaScript语言将HTML文件和JS代码分开,单独创建一个JavaScript文件,后缀为.js,将JS代码直接写在JS文件中将JS文件嵌入到HTM

2016-08-01 16:28:49 281

原创 I/O多路复用

非阻塞I/O,recvfrom系统调用后,内核会立马返回,进程可以干点其他事,然后再发起系统调用重复上面的过程,拷贝数据的整个过程进程仍然是阻塞的阻塞I/O,进程发起系统调用后,在没有数据准备好时,进程会被阻塞,知道数据从内核复制到用户控件完成多路复用I/O,可以同时等待多个socket,当有一个socket数据准备好时就返回,然后由进程发起系统调用,将数据从内核拷贝到用户空间,此过程进程是阻塞

2016-07-30 17:10:28 355

原创 基本算法学习

回溯算法1. 回溯算法该算法可以系统性的搜索问题的所有解,它在问题的解空间树中按深度优先策略从根节点出发搜索解空间树

2016-07-26 13:41:12 371

原创 其他

从CPU连出来一把线:数据总线、地址总线、控制总线,这把线上挂着N个接口,有相同的,有不同的,名字叫做存储器接口、中断控制接口、DMA接口、并行接口、串行接口、AD接口……一个设备要想接入,就用自己的接口和总线上的某个匹配接口对接……于是总线上出现了各种设备:内存、硬盘,鼠标、键盘,显示器…… 对于CPU而言,如果它要发数据到某个设备,其实是发到对应的接口,接口电路里有多个寄存器(也称为端口),访

2016-07-25 23:39:05 381

原创 前端学习

CSS:(Cascading Style Sheet<层叠样式表单>),用来进行网页风格设计特点:* 精确控制布局* 网页表现统一* 支持多种设备* 制作体积小,下载更快的网页每条规则分为:1.选择符, 2.声明 如:p, h2 {text-align:center; } 类选择符:使用之前要对实际文档标记 .name {text-align:center;} ID选择符:

2016-07-25 23:37:57 235

原创 web学习

CSS:(Cascading Style Sheet<层叠样式表单>),用来进行网页风格设计特点:* 精确控制布局* 网页表现统一* 支持多种设备* 制作体积小,下载更快的网页每条规则分为:1.选择符, 2.声明 如:p, h2 {text-align:center; } 类选择符:使用之前要对实际文档标记 .name {text-align:center;} ID选择符:

2016-07-25 23:37:12 257

原创 c编程

内存管理常识内存管理函数常用内存调试工具文件操作时间操作异常1.内存管理1.常识用size命令可以查看二进制可执行文件结构情况一个正在运行中的C编译程序占用内存分为:代码区 : 存放CPU执行的指令,该区域是共享的,只读 ,初始化数据区 : 包含初始化的全局变量,静态变量,常量,未初始化数据区 (BBS区) : 全局未初始化的变量,在运行时改变值堆区:向

2016-07-25 23:29:07 701

原创 vim学习

1.命令学习gD 调到当前变量的定义处去% 跳到配对的括号处”是两个’,调到上次停靠的位置mx 设置标签[a-z]‘x 调到标签x处, 是1左边的键, 或者’ > 增加缩进, x> 表示以下x行增加缩进< 减少缩进x< 以下x行减少缩进2. 配置http://blog.csdn.net/namecyf/article/details/7787479语法高亮sy

2016-07-25 23:28:31 376

原创 ucos移植

[toc]1. 关于ucosii的移植1. 总体步骤前期了解 目标芯片(内核)ucosii内核原理2. ucosii内核原理ucosii内核可分为: 任务调度,任务同步,内存管理,三部分任务调度为每个任务分配一个不同的优先级以下情况会发生任务切换任务等待资源或者自我延时退出中断SysTick中断是os的”心跳”,会发生周期性任务切换,所以必须调用OSTimeTick();os_co

2016-07-25 23:27:25 753

原创 多线程编程

术语了解1. 术语同步原语 (synchronization primitives)2. 了解Observer模式观察者模式,第一了一种一对多的依赖关系,让多个观察者对象同事监听某一个主题对象。boost是一个准标准库,相当于STL的延续和扩充,它的设计理念和STL比较接近,都是利用泛型让复用达到最大化。不过对比STL,boost更加实用。 STL集中在算法部分,而boost包含了不少工具

2016-07-25 23:26:32 184

原创 多进程编程

进程间通信管道管道用管道联系标准设备有名管道扩展1. 进程间通信1. 管道如果要进行全双工通信,需要建立两个管道管道没有名字,传送的事无格式的字节流,大小受限制在include/linux/limits.h中规定 #define PIPE_BUF 4096, 也就是一次管道读写最多传送512字节read(int _fd, void* buf, size_t _nbytes); //

2016-07-25 23:25:50 268

原创 sqlite学习

命令语法数据类型sqlite的点命令不以;结尾sqlite3, .help1. 命令 命令 描述 .backup ?DB? FILE 备份DB数据库(默认main)到FILE文件 .bail ON/OFF 发生错误后停止,默认为OFF .databases 列出数据库的名称和文件 .dump ?TABLE? 以SQL文本格式转储数据库,如果制定了TABL

2016-07-25 23:24:59 360

原创 java学习

计算机语言标签(空格分隔): Java计算机语言Java语言基础基本数据类型优先级类涉及英语单词补充字符串处理 常识1. Java语言基础1. 基本数据类型 数据类型 占字节数 所占位数 boolean 1 8 byte 1 8 short 2 16 int 4

2016-07-25 23:23:42 561

原创 Linux服务器配置与管理

Linux服务器配置与管理标签(空格分隔): LinuxLinux服务器配置与管理DNS服务器的配置与应用Domain Name System简介发展配置主配置文件设置跟区域etcnamedconf这只主区域etcnamedconf1. DNS服务器的配置与应用(Domain Name System)1. 简介DNS完全是为了迁就人类的记忆思维设置的,主要用来帮助用户记忆网络地址。

2016-07-25 23:23:07 4477

原创 微机原理

微机原理标签(空格分隔): 计算机基础微机原理第7章 输入输出与中断第四章 8086指令系统第7章. 输入/输出与中断把介于主机和外设之间的一种缓冲电路称为I/O接口电路,简称I/O接口主机与I/O设备之间交换信息有: 数据信息 数字量(计算机可以直接发送,接受 和处理的数据。以二进制形式表示的数或ASCII码表示的数符)模拟量(通过传感器采集到的现场数据, 经过A/D转换后才能输入

2016-07-25 23:22:04 1017

原创 Linux内核学习

Linux内核学习标签(空格分隔): 计算机基础控制卡是通过扩展插槽与主板上的系统总线连接。总线插槽是各总线与扩展设备控制器的标准连接接口北桥Northbridge, MCH(memory Controller Hub)南桥Southbridge, ICH(I/O Controller Hub)访问I/O控制器上的数据信息和控制信息, 需要对其变址,分为 统一编址独立编址I/O控制器

2016-07-25 23:21:26 336

原创 算法学习

算法学习标签(空格分隔): 计算机基础算法学习遗传算法GA1. 遗传算法GA是一种模拟自然界遗传机制和生物进化论而成的一种并行随机搜索最有化方法。可并行处理,并能找到全局最优解。(1)基本操作:复制 通过随机方法实现。首先产生0~1之间的随机数,某串的复制概率为40%,则当产生的随机数在0.4~1.0之间时,该串被复制,否则被淘汰。能错那个旧种群中选择出优秀者交叉(一点交叉,多点交叉

2016-07-25 23:20:42 331

原创 STL学习

STL学习tags: 数据结构vector 的实现技术,关键在于其对大小的控制,重新配置时的数据移动效率drand48()函数drand48: 产生[0,1]之间均匀分布的随机数,采用了线性同余法和48位整数运算来产生伪随机序列函数产生一个48位的伪随机整数,取出此整数的高32位作为随机数,然后将这个32位的伪随机数规划到[0,1]之间,函数srand48来初始化drand48(),其只对于4

2016-07-25 23:19:49 646

原创 网络编程问题集锦

1. 进程核线程有什么区别?进程是一个应用程序一次执行过程,可申请和拥有资源,是一个活动的实体。一个进程可以包含若干线程,通常把进程作为分配资源的基本单位,线程作为独立运行和调度的基本单位。线程调度开销小子进程和父进程有不同的代码和数据空间,线程则共享数据空间。每个线程有子己执行堆栈和程序计数器为其执行上下文。进程间相互独立,同一进程的个线程间共享。进程间通信IPC,线程间可直接读写进程数据

2016-07-23 10:05:02 326

原创 操作系统概论

总括进程管理处理机调度和死锁1. 总括目标: 方便性(方便用户使用)有效性(改善资源利用率提供吞吐量)可扩展性(满足新的需求,使用层次化结构)开放性(遵循世界标准)作用 作为用户与计算机硬件系统之间的接口(命令接口,系统调用,图形、窗口方式)系统资源的管理者(处理机,存储器,I/O设备,信息(数据和程序))作为扩充器(使其功能增强)动力 不断提高资源利用率方便使用器件更

2016-07-16 12:40:41 322

原创 AVL树分析

这篇文章只专注四件事:avl树的分析;为什么会这么做?为什么我没有想到?问题出在哪里?相信会是一次不同以往的体验并给你带来巨大的收获。

2015-04-26 11:02:19 561

原创 Trie树

Trie树也称字典树,因为其效率很高,所以在在字符串查找、前缀匹配等中应用很广泛

2014-11-09 19:20:52 387

原创 简单迷宫游戏2

#include#include#include#include#includeusing namespace std;#define Max 7   //迷宫的大小#define Key 2   //解中线路标记数字#define Exit1 Max-1    //出口横坐标#define Exit2 Max-1   //出口纵坐标#def

2014-04-08 23:07:23 402

原创 简单迷宫游戏1

#include#include#include#include#includeusing namespace std;#define Max 12int g[Max][Max];void maprand();  //生成迷宫void prmap(int x, int y);  //显示迷宫bool walk(int x, i

2014-04-08 22:21:25 710

原创 数字的翻译

1.以下程序是对一个总长不超过十位的小数进行翻译,其翻译结果为英文。2.其中函数translate(char a[], int begin, int end),是对所输入数的整数部分进行翻译。函数void translate1(char a[], int begin, int end),是对所输入的小数部分进行翻译,void translate2(),是对程序进行保护,防止数据被更改。

2014-04-08 21:56:30 605

原创 排序

问题:将数组a【begin, end】由小到大进行排序, 分析:想一下我们一般怎样排序,先假设这个数组只有两个数,a[1]和[2],我们会这样做: 如果a[1]大于a[2]则交换这两个数,否则什么也不做。那么数组有n个数呢?不难发现我们总是把大的数放在右边,小的数放在左边,那么细想一下,很容易就会发现以下几种方法: 1:找出数组a[begin, end]中最大的数,然后将它

2013-12-17 16:41:21 391

原创 八皇后问题

#include#define Queen_Max 8int queen_number=0; //表示已经放皇后的个数int k=0;int queen[Queen_Max][Queen_Max]; // 用二维数组表示棋盘int judge_queen(int x, int y);void place_queen(int x);int main(){

2013-12-09 22:16:46 646

空空如也

空空如也

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

TA关注的人

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