自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 数据结构--排序算法

排序算法概述排序算法分为内部排序和外部排序两大类。内部排序:在计算机内存中完成的排序算法外部排序:不能再内存中文完成,必须在磁盘或者磁带上完成的排序算法内部排序是研究的重点问题,通常我们讲的八大排序算法也主要是讲的内部排序算法。 排序算法的稳定性和时间空间复杂度 算法介绍本文重点介绍以下几种排序算法1.插入算法1.理论思想插入排序问题的思路是将为排序元素逐一插入至已经排序的序列,从第二个元素

2016-07-24 10:14:08 657

原创 linux设备驱动--字符设备驱动注册与驱动参数传递

linux驱动–字符设备注册与驱动参数传递设备驱动介绍上文中讲到,设备驱动分为三类,分别为:字符类设备、块类的设备、网络设备等。从Linux 2.6起引入了一套新的驱动管理和注制:Platform_device和Platform_driver。Linux中大部分的设备驱动,都可以使用这套机制, 设备用Platform_device表示,驱动用Platform_driver进行注册。Linux pla

2016-07-10 14:59:13 1523

原创 linux驱动--LED驱动

linux驱动–LED驱动配置介绍前面已经详细的介绍了关于设备注册、驱动注册以及设备节点的生成的相关问题,本文主要介绍如何写LED驱动程序。主要介绍GPIO的 调用、赋值以及配置的函数(1)使用一个GPIO前必须对其进行申请,申请GPIO的函数在linux头文件include/linux/gpio.h下 GPIO_request函数有两个参数,第一个gpio为所需要申请的gpio,*label

2016-07-08 11:14:55 793

原创 Html学习笔记2

表单常用属性table tr td 1.table 表格标记 < table> < /table>属性 border 属性 align = “left center right” 属性 width height 属性 cellpadding 文字到边框的最小距离 属性 cellspacing 边框的厚度 属性 bordercolor 边框颜色 属性 bgcolor 背景

2016-07-07 22:11:29 424

原创 Html学习笔记1

Html学习笔记11.换行标记 < br/ > 2.标题标记 < hn/ > 3.段落标记 < p > < /p > 4.字体标记 < font 属性>内容 font标记控制文字,需要属性,属性可以是color face size等5.图片标记 < img 属性 > 属性src 路径属性 分绝对路径和相对路径 平级:直接写文件名字 上一级目录: ../

2016-07-07 21:18:44 264

原创 linux常用命令总结

1.文件基本操作 cd切换路径命令(同常我们习惯称之为打开命令) 用法 : cd 路径 ls查看命令 用法: ls 参数 路径 参数:-a 显示所有文件及内容 -l列出文件的所有信息 cp文件复制命令 cp 参数 源文件 目标文件 文件夹新建mkdir

2016-07-07 20:22:04 581

原创 linux驱动--设备节点生成

linux驱动–设备节点生成关于设备注册于驱动注册,参考前一篇文章http://blog.csdn.net/cole10540316/article/details/51848272linux驱动一般分为三类:字符设备、块设备、网络设备,但是这三类设备并不能完全包含所有的设备,所以引入了杂项设备。linux下采用杂项设备可能包含字符设备、块设备、网络设备中的一项或者多项设备。本文是在杂项设备下生成设

2016-07-07 17:26:29 3137 2

原创 linux内核配置与驱动注册

linux 内核配置与驱动注册menuconfig使用使用menuconfig工具实现linux内核的裁剪。进入内核配置界面的方法包括以下几种:#make config这是基于文本的最为传统的配置界面,不推荐使用#make menuconfig基于文本菜单的配置界面,现在大部分都是使用这个工具来裁减配置内核的。#make xconfig要求 QT 被安装,用的比较少。#make gcon

2016-07-07 08:52:42 724

原创 linux 最小内核模块

linux 最小内核模块1.内核模块介绍linux内核包含的内容很多,在进行内核编译的时候,可以把所有的代码编译进内核,但是这样会引起两个问题:一是内核过大;二是 当需要添加或者删除内核时,需要重新再编译内核。而模块不需要编译到内核,放置到指定目录使用时直接加载模块,不需要使用时直接卸载模块,可以减小内核大小,并可以实现相同的效果。2.最小linux模块例程#include <linux/modul

2016-07-05 09:16:12 525

原创 linux web服务器搭建

linux的Web服务器搭建boa web服务器介绍boa是一款非常小巧的web服务器,执行代码大约只有60K,广泛应用于嵌入式平台。boa服务器是一个单任务网络服务器,只能依次执行用户的请求。bao下载地址(已经进10年没有更新了)http://www.boa.org/这里使用的是boa-0.94.13.tar.gz版本,接下来要做的是编译boa。boa 文件编译解压安装包文件:tar -vx

2016-06-30 22:44:59 8732

原创 linux网络编程--UDP协议

特点UDP 即用户数据报协议,它是一种无连接协议,因此不需要像 TCP 那样通过三次握手来建立一个连接。同时,一个 UDP 应用可同时作为应用的客户或服务器方。由于 UDP 协议并不需要建立一个明确的连接,因此建立 UDP 应用要比建立 TCP 应用简单得多。UDP和TCP协议的比较(1)对数据可靠性的要求 对数据要求高可靠性的应用需选择 TCP 协议,如验证、密码字段的传送都是不允许出错

2016-06-15 18:42:36 7160 1

原创 linux网络编程--TCP/IP协议

特点TCP协议的位于数据传输层,其上一层是应用层,因此其目的是为了实现一个应用于另一个应用之间数据传输。TCP协议需要进行三次握手实现数据发送和接收的同步。第一次握手:客户端向服务端提出连接请求。这时TCP SYN标 志置位。客户端告诉服务端序列号区域合法,需要检查。客户端 在TCP报头的序列号区中插入自己的ISN。服务端收到该TCP分 段后,。 第二次握手:接收主机通过发回具

2016-06-14 20:49:16 1037

原创 网络通信协议

特点TCP/IP协议将OSI协议模型简化为四层结构 网络接口层:负责将二进制流转换为数据帧,并进行数据帧的发送和接收网络层:负责将数据帧封装成IP数据报,并运行必要的路由算法传输层:负责端对端之间的通信会话连接与建立。传输协议的选择根据数据传输方式而定应用层:负责应用程序的网络访问,这里通过端口号来识别各个不同的进程各层协议网络接口层协议 网络接口层协议主要包括:ARP(Address

2016-06-10 23:09:36 1198

原创 linux进程通信--共享内存

特点共享内存是linux进程进行通信的一种高效的传递方式,linux内核在内存中留下一块存储区,进程通过将共享内存的地址映射到进程空间,就可以实现直接对数据进行操作,但是共享内存自身没有同步机制,因此需要适用其他的方式实现对共享内存空间的读写进行同步。通信结构简图如图1所示。 图1 多进程共享内存通信原理示意图实现过程与操作函数共享

2016-06-01 14:35:15 970

原创 linux进程通信--信号量

信号量的功能 信号量自身并不具有通信功能,而是在当多个进程访问同一资源时,使用信号量实现多个进程之间的互斥与同步,因此信号量相当于数据锁功能。简单的说信号量就是解决不同进程访问共享资源时,避免出现问题而产生的一种机制。 信号量是一个特殊的变量,程序对其访问都是原子操作,且只允许对它进行等待P(-1)操作和发送V(+1)操作。最简单的信号量是只能取0和1的变量,这也是信号量最常见的一种形式,

2016-05-31 20:33:15 747

原创 linux进程通信--消息队列

消息队列是一种消息的链表,用户可以对消息队列写入信息,读取信息。与无名管道类似,可以实现不相关进程之间的通信,但不同的是消息队列可以实现对消息的查询读取。消息队列的实现包括创建或打开消息队列、添加消息、读取消息和控制消息队列这四种操作。实现消息队列的四种操作的函数int msgget(key_t key, int msgflg);int msgsnd(int msqid, const void

2016-05-31 10:19:07 660

原创 C语言的.和->的区别

刚遇到一个问题就是对结构体的访问时,我写的是.但是就是编译无法通过,后来改成-> 的形式,再次进行编译,发现奇迹发生了!通过了,通过查阅资料和看别人写的博客才明白原因,特此记录下来。

2016-05-30 23:27:43 530

原创 linux进程通信--有名管道

在前面介绍了无名管道的通信方式,无名管道主要用于具有亲缘关系的进程通信(包括父进程与子进程通信以及兄弟进程通信),本文介绍有名管道通信,那么可想而知,有名管道是用于任意两个进程之间的通信。特点可以实现任意两个互不相关的进程之间的通信;有名管道创建后,对其操作类似于文件操作,可以使用read,open,write等操作,并且有名管道可以在文件路径下显示。有名管道的数据严格执行先进先出的规则。下面

2016-05-30 19:31:46 732

原创 linux进程通信--无名管道

linux无名管道通信特点无名管道是半双工的通信方式,数据只能一方发送,另一方接收。无名管道只适用于亲缘关系的进程通信。数据的读出和写入:一个进程向管道中写的内容被管道另一端的进程读出。写入的内容每次都添加在管道缓冲区的末尾,并且每次都是从缓冲区的头部读出数据。#include <stdio.h>#include <stdlib.h>#include <unistd.h>void rea

2016-05-29 22:55:28 1842

原创 linux新建进程--fork

fork用于创建新进程,新进程与原进程具有从属关系,原进程称之为父进程,新建进程称为子进程,此进程还有其他什么关系呢? 1. 进程号 子进程的父进程应该为原进程,原进程的子进程应该为新建的进程号。 2. 返回值 使用fork新建进程返回值有三种,出错返回-1,0返回给子进程 ,大于0的正整数返回给父进程。 3. 数据共享 子进程会复制父进程的所有数据,在

2016-05-23 18:51:11 1124

原创 linux的main的参数传递

很多程序是需要适用main直接传递参数的,那么main的参数是怎么保存的呢。 如int main(int argc int *argv[]),这个时候执行命令 cp data1.txt /dev/udisk/ 此时参数保存的结果为 argc=3,argv[0]=”cp” argv[1]=”data1.txtx”,argv[2]=”/dev/u

2016-05-23 08:40:53 1709

空空如也

空空如也

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

TA关注的人

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