自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Linux操作系统网络驱动程序编写详解

经历一个从无到有的过程, 深感技术交流的重要。Linux作为挑战微软垄断的强有力武器,日益受到大家的喜 爱。真希望她能在中国迅速成长。把程序文档贴出来,希望和大家探讨Linux技术 和应用,促进Linux在中国的普及。 一.Linux系统设备驱动程序概述 1.1 Linux设备驱动程序分类 Linux设备驱动程序在Linux的内核源代码中占有很大的比例,源代码的长度日 益增加,主要

2008-03-12 18:15:00 658

转载 linux系统ioctl使用示例

These were writed and collected by kf701,you can use and modify them but NO WARRANTY.Contact with me : kf_701@21cn.com程序1:检测接口的 inet_addr,netmask,broad_addr程序2:检查接口的物理连接是否正常程序3:更简单一点测试物理连接程序4:调节音量****

2008-03-12 18:10:00 728

转载 使用ioctl与内核交换数据

 1. 前言 使用ioctl系统调用是用户空间向内核交换数据的常用方法之一,从ioctl这个名称上看,本意是针对I/O设备进行的控制操作,但实际并不限制是真正的I/O设备,可以是任何一个内核设备即可。 2. 基本过程 在内核空间中ioctl是很多内核操作结构的一个成员函数,如文件操作结构struct file_operations(include/linux/fs.h)

2008-03-12 18:08:00 705

转载 ALinux网桥的实现分析与使用

本文分析了linux 2.4.x内核的网桥的实现方法,并且描述了如何使用2.4中的网桥。网桥,类似于中继器,连接局域网中两个或者多个网段。它与中继器的不同之处就在于它能够解析它收发的数据,读取目标地址信息(MAC),并决定是否向所连接网络的其他网段转发数据包。为了能够决策向那个网段发送数据包,网桥学习接收到数据包的源MAC地址,在本地建立一个以MAC和端口为记录项的信息数据库。一、Linux内

2008-03-09 13:14:00 457

转载 详细解析C语言中的sizeof

 一、sizeof的概念  sizeof是C语言的一种单目操作符,如C语言的其他操作符++、--等。它并不是函数。sizeof操作符以字节形式给出了其操作数的存储大小。操作数可以是一个表达式或括在括号内的类型名。操作数的存储大小由操作数的类型决定。  二、sizeof的使用方法  1、用于数据类型    sizeof使用形式:sizeof(type)    数据类型必须用括

2008-03-07 17:36:00 564

转载 ARP协议揭密

1 ARP协议概述IP数据包常通过以太网发送。以太网设备并不识别32位IP地址:它们是以48位以太网地址传输以太网数据包的。因此,IP驱动器必须把IP目的地址转换成以太网网目的地址。在这两种地址之间存在着某种静态的或算法的映射,常常需要查看一张表。地址解析协议(Address Resolution Protocol,ARP)就是用来确定这些映象的协议。ARP工作时,送出一个含有所希望的IP

2008-03-07 00:25:00 708

转载 网桥原理及源代码详解

/*                                     解析:xie_minix                           */ /* 概述: * 该代码在FB中提供桥接功能,不过他只是在以太网接口上工作,能提供多个逻辑桥 * ,我们称为组,组是由一组有相同组ID的接口组成,组ID的范围在1到2^16-1之间. * 打开桥的功能是通过sysctl net.link.

2008-03-07 00:16:00 1010 1

转载 Linux 网桥实现分析

第一部份 源码框架一、网桥原理传统的中继器,如HUB,是一个单纯的物理层设备,它将每一个收到的数据包,在其所有的端口上广播,由接收主机来判断这个数据包是否是给自己的。这样,网络资源被极大的浪费掉了。网桥之所以不同于中继器,主要在于其除了有中继的作用外,还有一个更重要的作用,就是学习MAC地址,然后根据每个数据包的目的MAC与自身端口的对应,从关联端口发送数据,而不完全地在整个网段中进行广播。所以,

2008-03-07 00:12:00 2814

转载 Linux网桥源码框架分析初步

今天处理网桥的STP的问题遇到了麻烦,对这个东东理论的倒是看了不少,没有真真学习到它的源理,来看Linux的实现,手头没有资料,看了两个钟头,只把网桥的框架结构看完,所以想先贴出来,希望有研究这块的大哥们讨论,继续把它写完,九贱好学习一下:版本:Linux 2.4.18一、调用在src/net/core/dev.c的软中断函数static void net_rx_action(struct sof

2008-03-07 00:10:00 802

转载 IP网络组播技术的新发展

1 前言      组播(multicast)是一到多或者多到多的多方通信形式,远程会议、交互式仿真、分布式内容系统、多方游戏等应用都对组播业务(multicast service)提出了需求。在OSI模型的网络层或者应用层实现业务是目前组播业务的两种实现体制,本文对这两种体制的体系结构进行了讨论,对两种体系结构的发展及其对IP网络体系结构的影响提出了一些看法。    2 IP组播的历史、现状及困

2008-03-07 00:08:00 1328

转载 IP组播技术

近年来,随着Internet的迅速普及和爆炸性发展,在Internet上产生了许多新的应用,其中不少是高带宽的多媒体应用,譬如网络视频会议、网络音频/视频广播、股市行情发布、多媒体远程教育、大规模协同计算等。这就带来了带宽的急剧消耗和网络拥挤问题。为了缓解网络瓶颈,人们提出各种方案,其中一种是采用IP Multicast(组播、多播或多路广播)技术,它是一种能最大限度利用现有带宽的技术。比较而言,

2008-03-07 00:06:00 585

转载 单播/组播/广播 通讯协议的特点及应用对比

当前的网络中有三种通讯模式:单播、广播、组播,其中的组播出现时间最晚但同时具备单播和广播的优点,最具有发展前景。 一、单播:      主机之间“一对一”的通讯模式,网络中的交换机和路由器对数据只进行转发不进行复制。如果10个客户机需要相同的数据,则服务器需要逐一传送,重复10次相同的工作。但由于其能够针对每个客户的及时响应,所以现在的网页浏览全部都是采用IP单播协议。网络中的路由器和交换

2008-03-07 00:04:00 602

转载 无线路由、AP、网桥之区别详解篇

通过无线上网冲浪,现在已经不是新鲜的事情,随着近一两年无线网络的飞速发展,从企业到家庭都开始在不同的领域体验着“自由上网”的乐趣,笔者接触无线网络也有一段时间了,经常在一些无线论坛逛游,无论是在现实生活还是在论坛中,总会有朋友不断的问这样的问题:什么是无线AP,什么是无线路由器,什么又是无线网桥,我想家里上网该用哪一种设备?今天笔者就详细的谈谈这几者之间的区别,以解初识无线的朋友的心中之惑。 

2008-03-06 23:56:00 5457

转载 路由器原理和路由协议、算法详解

近十年来,随着计算机网络规模的不断扩大,大型互联网络(如Internet)的迅猛发展,路由技术在网络技术中已逐渐成为关键部分,路由器也随之成为最重要的网络设备。用户的需求推动着路由技术的发展和路由器的普及,人们已经不满足于仅在本地网络上共享信息,而希望最大限度地利用全球各个地区、各种类型的网络资源。而在目前的情况下,任何一个有一定规模的计算机网络(如企业网、校园网、智能大厦等),无论采用的是快

2008-03-06 23:54:00 1137

转载 网桥的原理与作用

一、什么是网桥? 网桥工作在数据链路层,将两个LAN连起来,根据MAC地址来转发帧,可以看作一个“低层的路由器”(路由器工作在网络层,根据网络地址如IP地址进行转发)。远程网桥通过一个通常较慢的链路(如电话线)连接两个远程LAN,对本地网桥而言,性能比较重要,而对远程网桥而言,在长距离上可正常运行是更重要的。 网桥与路由器的比较网桥并不了解其转发帧中高层协议的信息,这使它可以同时以同种

2008-03-06 23:51:00 2614

转载 计算机网络基础概念

IEEE网络规范 3.6 IEEE网络规范IEEE(美国电子电器工程协会)于1980年2月发的规范,简称为IEEE 802规范。此网络规范,不仅应用于帧类型,还用于连接、网络介质、错误校验算法、加密、融合技术等等。所有这些规范都是在IEEE“项目802”小组领导下制定的,该小组致力于标准化网络的物理部件。在OSI模型由ISO标准化之前,IEEE即已开发了这些标准。但IEEE 802标准仍被应用

2008-03-06 23:49:00 1353

转载 浅谈内存泄漏

          对于一个c/c++程序员来说,内存泄漏是一个常见的也是令人头疼的问题。已经有许多技术被研究出来以应对这个问题,比如Smart Pointer,Garbage Collection等。Smart Pointer技术比较成熟,STL中已经包含支持Smart Pointer的class,但是它的使用似乎并不广泛,而且它也不能解决所有的问题;Garbage Collection技术在J

2008-03-06 20:57:00 373

转载 程序运行时,结构体的内存分配,大讨论。。。

 十分疑惑:                   定义一个结构体                   typedef   struct   example                                             {                                                 int   a;                    

2008-03-06 20:24:00 1056

原创 C++并不难—之内存分配

很多人都觉得学习C++是特别困难的事情。C++学习是比较复杂的:它的内存分配、指针、以及面向对象思想的实现等等,确实需要一定的技术积累。我们将以专题的形式,为大家逐一剖析c++的技术重点和难点。    本专题讨论的就是内存分配。学习c++如果不了解内存分配是一件非常可悲的事情。而且,可以这样讲,一个C++程序员无法掌握内存、无法了解内存,是不能够成为一个合格的C++程序员的。    一

2008-03-06 20:13:00 836 3

转载 Linux编程C++内存管理之内存分配详解

程序员们经常编写内存管理程序,往往提心吊胆。如果不想触雷,唯一的解决办法就是发现所有潜伏的地雷并且排除它们,躲是躲不了的。本文的内容比一般教科书的要深入得多,读者需细心阅读,做到真正地通晓内存管理。 内存分配方式 内存分配方式有三种: (1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。 (2)在栈上创

2008-03-06 20:11:00 498

转载 内存分配深入探讨

        摘要:内存管理向来是C/C++程序设计的一块雷区,大家都不怎么愿意去碰她,但是有时不得不碰它。虽然利用C++中的smart pointer已经可以完全避免使用指针,但是对于对于指针的进一步了解,有助于我们编写出更有效率的代码,也有助于我们读懂以前编写的程序。    五大内存分区    在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。    栈

2008-03-06 20:09:00 408

转载 关于C语言中的结构体对齐问题

1,比如: struct{short a1;short a2;short a3;}A;struct{long a1;short a2;}B;sizeof( A)=6, sizeof( B)=8,为什么?注:sizeof(short)=2,sizeof(long)=4因为:“成员对齐有一个重要的条件,即每个成员按自己的方式对齐.其对齐的规则是,每个成员按其类型的对齐参数(通常是这个类型的大小

2008-03-05 17:15:00 396

转载 c/c++中结构体的入门教程

什么是结构体? 简单的来说,结构体就是一个可以包含不同数据类型的一个结构,它是一种可以自己定义的数据类型,它的特点和数组主要有两点不同,首先结构体可以在一个结构中声明不同的数据类型,第二相同结构的结构体变量是可以相互赋值的,而数组是做不到的, 因为数组是单一数据类型的数据集合,它本身不是数据类型(而结构体是),数组名称是常量指针,所以不可以做为左值进行运算,所以数组之间就不能通过数组名称相互复制了

2008-03-05 17:10:00 473

转载 c/c++中结构体(struct)知识点强化,链表的学习

在上一个教程中我们已经简单的阐述了什么是结构体了,为了进一部的学习结构体这一重要的知识点,我们今天来学习一下链表结构。 结构体可以看做是一种自定义的数据类型,它还有一个很重要的特性,就是结构体可以相互嵌套使用,但也是有条件的,结构体可以包含结构体指针,但绝对不能在结构体中包含结构体变量。 struct test { char name[10]; float socre; test *next; }

2008-03-05 17:01:00 868

转载 C链表重构

/*这次重写主要是为了增加结构的通用性、为了照顾初学的朋友我保  *留原来的代码,那个看起来更容易被初学者理解.代码中的mian函数  *只是简单的测试,大家可以根据需要自行修改.*/  ————————————————lis.h——————————————  #ifndef LIST_H  #define LIST_H  /*定义函数状态*/  #ifndef OK  #define ERR -

2008-03-05 16:44:00 473

转载 链表的C语言实现之循环链表及双向链表

一、循环链表  循环链表是与单链表一样,是一种链式的存储结构,所不同的是,循环链表的最后一个结点的指针是指向该循环链表的第一个结点或者表头结点,从而构成一个环形的链。  循环链表的运算与单链表的运算基本一致。所不同的有以下几点:  1、在建立一个循环链表时,必须使其最后一个结点的指针指向表头结点,而不是象单链表那样置为NULL。此种情况还使用于在最后一个结点后插入一个新的结点。   2、在判断是否

2008-03-05 16:40:00 433

转载 链表几种常用操作回顾

============== 链表几种常用操作回顾   ==================//***********************************//**      链表各种操作回顾     **   //***********************************#include //-----------------------------------

2008-03-05 16:31:00 606

转载 链表的C语言实现基础介绍

链表的C语言实现之动态内存分配 一、为什么用动态内存分配  但我们未学习链表的时候,如果要存储数量比较多的同类型或同结构的数据的时候,总是使用一个数组。比如说我们要存储一个班级学生的某科分数,总是定义一个float型(存在0.5分)数组:float score[30];   但是,在使用数组的时候,总有一个问题困扰着我们:数组应该有多大?  在很多的情况下,你并不能确定要使用多大的数组,比如上

2008-03-05 16:24:00 1065 1

转载 教你理解复杂的C/C++声明

 曾经碰到过让你迷惑不解、类似于int * (* (*fp1) (int) ) [10];这样的变量声明吗?本文将由易到难,一步一步教会你如何理解这种复杂的C/C++声明。   我们将从每天都能碰到的较简单的声明入手,然后逐步加入const修饰符和typedef,还有函数指针,最后介绍一个能够让你准确地理解任何C/C++声明的“右左法则”。   需要强调一下的是,复杂的C/C++声明并不

2008-03-05 14:33:00 305

转载 C/C++语言void及void指针深层探索

 1.概述 许多初学者对C/C++语言中的void及void指针类型不甚理解,因此在使用上出现了一些错误。本文将对void关键字的深刻含义进行解说,并详述void及void指针类型的使用方法与技巧。 2.void的含义 void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。 void几乎只有“注释”和限制程序的作用,因为从来没有人会

2008-03-05 14:31:00 359

转载 c/c++数组排序、计算平均值、最大、小值

 最近在帮助其它人的学习中发现了许多问题就数组和局部变量和全居变量的两道例题进行刨析和思考! 排序操作 #include voidsort(array,n) intarray[]; intn; { inti,j,k,t; for(i=0;i)/* 循环9次,这里循环9

2008-03-05 14:30:00 1915

转载 编程导学之C/C++中命令行参数的原理

 早以前的dos应用程序中,我们经常会用命令行参数执行应用程序例如: copy c:/1.txt d:/ 在c/c++中,命令行参数的传递是利用main进行形参传递实现的 前面的教程中我们对面都进行了void main()或者

2008-03-05 14:27:00 461

转载 深入理解C语言指针的奥秘

        指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。 要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的 类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。让我们分别说明。   先声明几个指针放着做例子:   例一:   (1)int*ptr;   (2)char*ptr;   (3)int**ptr;   (4)int(*ptr)[

2008-03-05 14:10:00 556

转载 深入了解802.11n无线标准

事件见证篇:1.10草案通过,802.11n产品终师出有名  802.11n标准1.0版草案早在2006年3月份被定为工作草案,而由于当时的认 可 率不足50%,所以802.11n无线标准被迫进一步推迟。到了2007年1月14日到19日,802.11工作组在英国伦敦举行了第101次会议,此次 会议的其中一项重要议程就是对修改后的802.11n草案1.10版本进行投票,为草案2.0版本最终定稿,

2008-03-05 10:17:00 1947

转载 无线局域网技术白皮书

无线局域网是计算机网络与无线通信技术相结合的产物。它利用射频(RF)技术,取代旧式的双绞铜线构成局域网络,提供传统有线局域网的所有功能,网络所需的基础设施不需再埋在地下或隐藏在墙里,也能够随需移动或变化。使得无线局域网络能利用简单的存取构架让用户透过它,达到“信息随身化、便利走天下”的理想境界。WLAN是20世纪90年代计算机与无线通信技术相结合的产物,它使用无线信道来接入网络,为通信的移动化,个

2008-03-05 10:07:00 1761

转载 多维数组的指针变量

          一、多维数组地址的表示方法  设有整型二维数组a[3][4]如下:   0 1 2 3  4 5 6 7  8 9 10 11   设数组a的首地址为1000,各下标变量的首地址及其值如图所示。  在前面曾经介绍过, C语言允许把一个二维数组分解为多个一维数组来处理。因此数组a可分解为三个一维数组,即a[0],a[1],a[2]。每一个一维数组又

2008-03-03 22:55:00 491

转载 指针的慨念(2)

   (2)加减算术运算  对于指向数组的指针变量,可以加上或减去一个整数n。设pa是指向数组a的指针变量,则pa+n,pa-n,pa++,++pa,pa--,--pa 运算都是合法的。指针变量加或减一个整数n的意义是把指针指向的当前位置(指向某数组元素)向前或向后移动n个位置。应该注意,数组指针变量向前或向后移动一个位置和地址加1或减1 在概念上是不同的。因为数组

2008-03-03 22:52:00 770

转载 指针的慨念(1)

          指针的基本概念          在计算机中,所有的数据都是存放在存储器中的。 一般把存储器中的一个字节称为一个内存单元,不同的数据类型所占用的内存单元数不等,如整型量占2个单元,字符量占1个单元等, 在第二章中已有详细的介绍。为了正确地访问这些内存单元,必须为每个内存单元编上号。 根据一个内存单元的编号即可准确地找到该内存单

2008-03-03 22:26:00 423

转载 C语言基础知识,看你掌握了没有?

常量和变量1.常   量: 程序执行过程中,值不变的量。  3 ,a  变   量:值可以改变的量。          一个变量有一个名字,在内存中有一定的存储单元,存放变量的值。2.常量类型:  a.整    型:12,0,-3  b.实    型:4.6,-1.2  c.字 符 型: a,d  d.符号常量: #define PRICE 30  (PRICE不能再被赋值且要大写)

2008-03-03 17:33:00 802

转载 C语言设计初学者的十八颗“地雷”

                C语言的最大特点是:功能强、使用方便灵活。C编译的程序对语法检查并不象其它高级语言那么严格,这就给编程人员留下“灵活的余地”,但还是由于这个灵活 给程序的调试带来了许多不便,尤其对初学C语言的人来说,经常会出一些连自己都不知道错在哪里的错误。看着有错的程序,不知该如何改起,本人通过对C的学 习,积累了一些C编程时常犯的错误,写给各位学员以供参考。         1

2008-03-03 17:31:00 390

空空如也

空空如也

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

TA关注的人

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