- 博客(216)
- 资源 (22)
- 收藏
- 关注
原创 网络字节序
网络字节序一.字节序 字节序是由于不同的主处理器和操作系统,对大于一个字节的变量在内存中的存放顺序不同而产生的。 字节序通常有大端字节序列和小端字节序两种分类方法。 由于主机的千差万别,主机的字节序不能做到统一,但是网络上传输的数值,它们有统
2011-09-19 15:41:05 4204
原创 Linux网络编程中的地址问题
Linux网络编程中的地址问题 在网络系统内核中 IP地址是32位,由4组十进制数组成,每组数值的范围为0~255,而平时我们使用的IP地址是16位字符串形式的IP地址,例如:“192.168.1.11”。在程序设计中经常要用到字符串表达方式的IP地址和二
2011-09-18 21:23:17 7060
转载 XML你所要知道的那些规范-RFC
XML-RPC规范中文版本规范说明的XML-RPC协议实现UserLand Frontier 5.1。关于非技术性说明,请访问XML-RPC for Newbies。文档提供了实现XML-RPC所需要的所有信息。前言XML-RPC是一种基于Internet的远程函数调用协议。XM
2011-09-15 17:57:21 2391
原创 基于Linux下的TCP编程
基于Linux的TCP网络编程一.Linux下TCP编程框架TCP网络编程的流程包含服务器和客户端两种模式。服务器模式创建一个服务程序,等待客户端用户的连接,接收到用户的连接请求后,根据用户的请求进行处理;客户端模式则根据目的服务器的地址和端口进行连接,向服务器发送请求并对服务器
2011-09-14 18:27:31 32335 17
原创 基于Linux下的UDP编程
基于Linux下的UDP编程一. Linux下UDP编程框架使用UDP进行程序设计可以分为客户端和服务器端两部分。1.服务器端程序包括:Ø 建立套接字Ø 将套接字地址结构进行绑定Ø 读写数据Ø 关闭套接字2.客户端程序包括:Ø 建立套接字Ø 读写数据Ø 关闭套接字3
2011-09-09 18:09:57 18955 5
转载 堆栈溢出技术从入门到高深(一)
堆栈溢出技术从入门到高深(一)转载:作者:独自等待出处:IT专家网2007-12-18 09:56虽然溢出在程序开发过程中不可完全避免,但溢出对系统的威胁是巨大的,由于系统的特殊性,溢出发生时攻击者可以利用其漏洞来获取系统的高级权限root,因此本文将详细介绍堆栈溢出技术……
2011-09-09 16:17:43 6903
原创 单播,广播和多播
单播,广播和多播 一.引言1.有三种IP地址:单播地址,广播地址和多播地址。2.广播和多播仅应用于UDP;TCP是一个面向连接的协议,它意味着分别运行于两主机(由IP地址确定)内的两进程(由端口号确定)间存在一条连接.3.网络中的一条报文是如何传送到主机中的某一个进程的1>主机
2011-07-25 17:02:20 6139
原创 B/S和C/S的区别
B/S和C/S的区别一、什么是CS和BS结构?1.C/S又称Client/Server或客户/服务器模式。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或SQLServer。客户端需要安装专用的客户端软件。2.B/
2011-07-24 13:59:53 70459
转载 Ubuntu下如何查找、安装你想安装的软件
1、更新软件数据库:sudo apt-get update2、查找你想要的软件:sudo apt-cache search softwareName3、从查找的结果中找到你想安装的软件,然后:sudo apt-get install softwareNameYouFound 备
2011-07-20 10:49:28 2900 1
转载 虚拟屏幕:云-移动融合的第三要素
转载:微软亚洲研究院编者按:移动和云计算作为新的计算平台已经出现,并逐步融合成为一个强大的云-移动计算平台。本文提出了一个虚拟屏幕的构想,作为上述平台的一个新的研发方向,将进一步优化用户的整体计算体验。对于这种虚拟屏幕,屏幕渲染工作在云中完成,并以图像形式传递至客户端,用于互动显
2011-07-15 09:53:23 2000
原创 Action3的数据和变量声明
Action3的数据和变量声明ActionScript3中所用的数据都是对象1.数据类型ActionScript的数据类型和C语言一样,也分为基元数据类型和复杂数据类型。1>基元数据类型(primitive data type)基元数据类型一共有:Boolean,int ,Number,String和uint.(1)int,Number,uint是处理数字的。Ø int 是用来处理整数(相当与C语
2011-07-02 17:45:23 1460 2
原创 Linux字符设备编程(五)之struct class
<br /><br />Linux字符设备编程(五)之struct class<br />在前面我们已经介绍了两种方法来实现在编写设备驱动程序时由系统自动给我们创建设备文件的方法。现在我们接着讲解第三种方法.<br />一.前言<br />内核中定义了struct class结构体,一个struct class 结构体类型变量对应一个类,内核同时提供了class_create()函数,可以用它来创建一个类,这个类存放于sysfs下面,一旦创建了这个类,再调用device_create()函数在/dev目录下
2011-05-29 21:44:00 12954 1
原创 Linux字符设设备编程(四)之可爱的misc
字符设备编程(四)之可爱的misc在我们前面所学的字符设备编程中,当我们写好字符设备驱动并加载成功后;要使我们所写的驱动层程序和应用层程序之间搭建起通信桥梁,要通过设备节点。很多时候,我们都是利用mknod命令手动创建设备节点;应用层程序通过设备节点(open(“/dev/globalmem”,O_RDWR))和驱动层程序之间进行通话。。我们先来看看如何创建一个设备节点呢?To user the driver,first create the proper device files .To do that,
2011-05-29 18:06:00 8843 3
转载 sscanf()函数的用法
sscanf名称:sscanf() - 从一个字符串中读进与指定格式相符的数据.函数原型:int sscanf( const char *, const char *, ...);头文件:#include说明:sscanf与scanf类似,都是用于输入的,只是后者以键盘(stdin)为输入源,前者以固定字符串为输入源。例子:1. 常见用法。 char buf[512] ; sscanf("123456 ", "%s", buf);//此处buf是数组名,它的意思是将123456以%s的形式存入buf中!
2011-05-24 13:42:00 6772
转载 sleep()函数-延迟函数
<br /><br />Sleep函数<br />1.简介<br />函数名: sleep<br />功 能: 执行挂起一段时间<br />用 法: unsigned sleep(unsigned seconds);<br />在VC中使用带上头文件<br />#include <windows.h><br />在gcc编译器中,使用的头文件因gcc版本的不同而不同<br />#include <unistd.h><br />2.注意<br />在VC中Sleep中的第一个英文字符为大写的"S"<br />
2011-05-24 13:40:00 6744 3
原创 atoi函数
<br /><br />atoi<br />C语言库函数名: atoi<br /> 功 能: 把字符串转换成整型数.<br /> 名字来源:array to integer 的缩写.<br /> 原型: int atoi(const char *nptr);<br /> 函数说明: 参数nptr字符串,如果第一个非空格字符不存在或者不是数字也不是正负号则返回零,否则开始做类型转换,之后检测到非数字或结束符 /0 时停止转换,返回整型数。<br /> 头文件: #include <stdlib.h>
2011-05-24 13:40:00 1968
原创 DDR2与DDR的区别
<br /> <!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } --><br />DDR2与DDR的区别<br /> 与DDR相比,DDR2最主要的改进是在内存模块速度相同的情况下,可以提供相当于DDR内存两倍的带宽。这主要是通过在每个设备上高效率使用两个DRAM核心来实现的。作为对比,在每个设备上DDR内存只能够使用一个DRAM核心。技术上讲,DDR2内存上仍然只有一个DRAM核心,但是它可以并行存取
2011-05-20 16:56:00 2001 1
原创 构建内核树
<br /> <br /> <br />够建内核树<br />1.下载内核源代码<br />apt-cachesearch linux-source <br />其中显示的有:linux-source-2.6.20,没有和我的内核版本完全匹配,不过也没关系,直接下载就可以了:<br />apt-getinstall linux-source-2.6.20 <br />2.下载后,在/usr/src/目录下有压缩包解压<br />tar-jxvf linux-sourc
2011-05-17 11:11:00 3350
原创 Linux内核开发之将驱动程序添加到内核
<br /> 驱动程序添加到内核<br /> <br />一.概述:<br />在linux内核中增加程序需要完成以下三项工作:<br />1.将编写的源代码复制到Linux内核源代码的相应目录<br />2.在目录的Kconfig文件中增加新源代码对应项目的编译配置选项<br />3.在目录的Makefile文件中增加对新源代码的编译条目<br />二.实例<br />1.先把驱动代码usbtmc(文件夹)赋值到/usr/src
2011-05-17 10:45:00 18489 11
原创 Ubuntu下搭建嵌入式环境
Ubuntu下搭建嵌入式环境一.minicom的安装(1)打开终端,输入:sudo apt-get install minicom(2)然后进行配置,输入sudo minicom -s(3)进入Serial port setup,需要修改两处:1>A中 /dev/tty8改为/dev/ttyS0注意:如果为笔记本没有串口,可以用usb转串口工具,此时要改为/dev/ttyUSB0(也许你的不一样,
2011-05-13 18:11:00 3687 1
原创 kmalloc/kfree,vmalloc/vfree函数用法和区别
kmalloc/kfree,vmalloc/vfree函数用法和区别1.kmalloc1>kmalloc内存分配和malloc相似,除非被阻塞否则他执行的速度非常快,而且不对获得空间清零.tiger说明:在用kmalloc申请函数后,要对起清零用memset()函数对申请的内存进行清零。> 2>kamlloc函数原型:#includeVoid *kmalloc(size_t size, int f
2011-05-11 20:13:00 34610 4
原创 C语言中函数strcpy ,strncpy ,strlcpy的用法
<br />C语言中函数strcpy ,strncpy ,strlcpy的用法<br />strcpy ,strncpy ,strlcpy的用法<br />好多人已经知道利用strncpy替代strcpy来防止缓冲区越界。<br />但是如果还要考虑运行效率的话,也许strlcpy是一个更好的方式。<br />1. strcpy<br />strcpy 是依据 /0 作为结束判断的,如果 to 的空间不够,则会引起 buffer overflow。strcpy 常规的实现代码如下(来自 OpenBSD 3.
2011-05-11 18:55:00 42619 5
原创 Linux字符设备驱动之register_chrdev_region()系列
<br />Linux字符设备驱动之 register_chrdev_region()函数系列<br />1.内核中所有已分配的字符设备编号都记录在一个名为 chrdevs 散列表里。该散列表中的每一个元素是一个 char_device_struct 结构,它的定义如下:<br />static struct char_device_struct {<br />struct char_device_struct *next; // 指向散列冲突链表中的下一个元素的指针<br />unsigned int m
2011-05-11 18:11:00 24377 2
原创 Linux字符设备驱动之cdev_init()系列
<br />字符设备驱动之cdev_init()系列函数<br />1.内核中每个字符设备都对应一个 cdev 结构的变量,下面是它的定义:<br />linux-2.6.22/include/linux/cdev.h<br />struct cdev {<br /> 13 struct kobject kobj;<br /> 14 struct module *owner;<br /> 15 const struct file_operations *ops
2011-05-11 17:54:00 13382
原创 Linux字符设备驱动(三)
字符设备驱动之体验篇三.字符设备编程篇通过程序来体验字符设备驱动编程的过程在Linux系统中,字符设备驱动由如下几个部分组成:(1)字符设备驱动模块加载与卸载函数(2)字符设备驱动的file_operations结构体中成员函数file_operations结构体中成员函数是字符设备驱动与内核的接口,是用户空间对Linux进行系统调用最终的实现着。(3)在字符设备驱动中,需要定义一个file_operations的实例,并将具体设备驱动的函数赋值给file_operations的成员。1.设备驱动的头文件,
2011-05-11 17:39:00 7422 5
原创 Linux字符设备驱动(二)
字符设备驱动之结构体二.字符设备驱动的结构体大部分基本的驱动程序操作涉及及到三个重要的内核数据结构,分别是file_operations、file和inode,它们的定义都在。1.file_operations:是一个函数指针的集合1>应用程序和VFS之间的接口是系统调用,而VFS与磁盘文件系统以及普通设备之间的接口是file_operations结构体成员函数,这个结构体包含对文件打开,关闭,读写,控制的一系列成员函数。2>由于字符设备的上层没有磁盘文件系统,所以字符设备的file_operations成
2011-05-11 17:13:00 5951 1
原创 Linux字符设备驱动(一)
Linux字符设备驱动之概述篇1.在Linux中有一句哲学“Linux下皆文件”,既把设备看做文件处理。那么设备和普通文件之间又有什么区分呢?先看看两个图:普通文件:-rw-r--r-- 1 stella stella 3699 2011-05-10 16:02 my_USBTMCAPP.c-rwxr-xr-x 1 stella stella 8763 2011-05-08 11:27 tiger-rw-r--r-- 1 stella stella 441 2011-05-08 11:2
2011-05-11 17:01:00 9505 11
转载 经常用到的javaScript技术代码
author:王绍峰http://blog.csdn.net/fasttalk/archive/2005/10/10/498988.aspx一、验证类1、数字验证内1.1 整数1.2 大于0的整数(用于传来的ID的验证)1.3 负整数的验证1.4 整数不能大于iMax1.5 整数不能小于iMin2、时间类2.1 短时间,形如 (13:04:06)2.2 短日期,形如 (2003-12-05)2.3 长时间,形如 (2003-12-0513:04:06)2.4 只有年和月。形如(2003-05,或者200
2011-05-10 09:15:00 1719
转载 HTTTP协议之POST和GEG区别
HTTP中POST和GET的区别一.HTTP请求1. HTTP请求格式:[]在HTTP请求中,第一行必须是一个请求行(request line),用来说明请求类型、要访问的资源以及使用的HTTP版本。紧接着是一个首部(header)小节,用来说明服务器要使用的附加
2011-04-01 18:31:00 3288 2
原创 strcasecmp函数用法
<br />strcasecmp<br />1.功能:忽略大小写比较字符串<br />2.头文件《string.h》<br />3.函数说明 strcasecmp()用来比较参数s1和s2字符串,比较时会自动忽略大小写的差异<br />4. 返回值 :若参数s1和s2字符串相同则返回0。s1长度大于s2长度则返回大于0 的值,s1 长度若小于s2 长度则返回小于0的值<br />5.例子:<br />#include <string.h><br />main()<br />{<br />char *a="a
2011-03-31 10:33:00 17282 1
原创 JOhn学英语-2011-3-30
<br />Extend the Miracle<br />My skills, my mind, my heart, and my body will stagnate, rot, and die lest I put them to good use. I have unlimited potential. Only a small portion of my brain do I employ; only a paltry amount of my muscles do I flex. A hundr
2011-03-30 22:18:00 1622
转载 堆和栈的区别
---------------------------------------------------------转载WebSite : http://blog.csdn.net/milan25429688/archive/2006/11/01/1360202.--------
2011-03-30 16:27:00 1957
原创 句子(一)
<br /> <br />1.Sometimes a difficult state of affairs can bring out a persion's best qualities.<br /> bring out:显示出(一个人的品质)<br />有时候困难的处境可以显示出一个人的最好的品质。
2011-03-22 15:25:00 1388
转载 程序员怎样开始享受喝茶的乐趣
<br /><br /> 从接触茶艺到现在,有三年多时间.从经验上看,喝茶对我们这些写程序的还是有不少正面作用的.调节心情,放松一下自是不在话下,选择了适合自己的茶还可以改善身体的健康状态. 些许经验简略地说一下,希望大家可以渐渐开始享受喝茶的味道.<br />1.准备工具<br /> 工具有两种:自由开发型和使用框架型, 前者需要买一批工具组合成一套喝茶的用具,讲茶道讲感觉人士的选择,后者只需要准备一个集成工具就可以完成标准的泡茶过程.<br /> 自由开发型需要准备的最简单的工具,列表如下:
2011-03-22 13:34:00 4413 5
转载 Linus Torvalds: A Very Brief and Completely Unauthorized Biography
Linus Torvalds: A Very Brief and Completely Unauthorized Biography Linus Torvalds is the world's most famous computer programmer and also its most famous Finn. He is the founder and coordinator of Linux, the Unix-like operating system that is beginning to
2011-03-05 09:19:00 2456
原创 基于LPC2210的RTL8019AS以太网驱动系统设计(四)
基于LPC2210的RTL8019AS以太网驱动系统设计终结篇七.页面切换子模块7.1页面切换子模块功能根据上一层模块传入的页号来切换页。RTL8019AS中的NE2000寄存器中用户可用于切换的页面有0,1,2三页,第四页为芯片保留。7.2页面切换子模块组成1> 读取命令寄存器(CR)中的值temp=ReadFromNet(0);2> 把命令寄存器中的PS1,PS0位清零,在清零过程中不能修改其他位,并且不能置TXP位。//命令寄存器中的PS1,PS0位清零注意txp位不能要temp=temp&0
2011-03-02 14:09:00 2599 3
原创 基于LPC2210的RTL8019AS以太网驱动系统设计(三)
<br />基于LPC2210的RTL8019AS以太网驱动系统设计(三)<br /><br />六.接收数据包模块<br />RTL8019AS接收数据有中断模式和查询模式两种。<br />Ø 采用中断模式时,需要在初始化程序中配置中断。当有一个正确的数据包到达时,RTL8019AS会产生一个中断信号,在中断处理程序中进行接收数据处理。<br />Ø 采用查询模式时,由主程序定时对接收缓冲区进行查询,当检测到有新的数据时,通过远程DMA方式将数据从RTL8019AS的RAM空间读出进行处理。<br /
2011-03-02 14:03:00 5800 1
原创 基于LPC2210的RTL8019AS以太网驱动系统设计(二)
基于LPC2210的RTL8019AS以太网驱动系统设计(二)五.发送数据包模块5.1发送数据包模块功能发送数据包时,先将待发送数据包通过远程DMA写入芯片RAM,给出发送缓冲区首地址和数据包长度,即可实现RTL8019AS的数据发送。RTL8019AS会自动按以太网协议完成发送并将结果写入状态寄存器。5.2发送数据包模快的数据结构1>_pkststruct _pkst{struct _pkst *STPTR;//前一个结构数组unsigned int length;//以太网帧报头长度长度1
2011-03-01 21:36:00 3749 5
嵌入式环境搭建之samba
2013-08-05
bonjour软件包,mDNSResponder
2011-07-03
getpid()编程getpid()编程getpid()编程getpid()编程
2010-11-14
fork3()编程fork3()编程fork3()编程fork3()编程fork3()编程
2010-11-14
fork1() 编程fork1() 编程fork1() 编程fork1() 编程
2010-11-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人