- 博客(166)
- 收藏
- 关注
转载 wpa_supplicant 配置与应用
wpa_supplicant是wifi客户端(client)加密认证工具,和iwconfig不同,wpa_supplicant支持wep、wpa、wpa2等完整的加密认证,而iwconfig只能支持wep。和wpa_supplocant相对应的,ap端的加密认证工具为hostapd。wpa_supplicant运行于后台,它需要借助控制台工具wpa_cli来进行手动操作。wpa
2014-05-04 15:34:56 2309
转载 和菜鸟一起学linux之wifi学习记录
也差不多一个月没有更新博客了,元旦也过去了,8天的班也上完了,小病也好了,时间又回到了每个周的周末了,不知道干嘛,突然发现好像失去了什么,好像做了很多很多没有意义的事,一直都是在原点打转,不知道接下去会是什么,不知道为了什么。也许总会有一段日子觉得很迷茫,不知所措。这么一来,原本要做的很多事都耽搁了,2012,离梦还有那么远,没有丝毫的前进。很累,但是不知道是身体的。还是心里的,还是…………
2014-05-04 14:42:11 951
转载 和菜鸟一起学android4.0.3源码之wifi的简单分析
关于wlan的组成 关于wifi应用层的接口的调用 首先从上层android wifi的应用开始,首先会根据android的wifimanager的类,实例化一个mwifimanager的对象,这个对象处理了所有wifi需要处理的任务,接着比如说打开wifi,那么就会调用 mWifiManager.isWifiEnabled();判断wifi是否已经打开,如果没有打开,那
2014-05-04 14:41:08 726
转载 Android系统SVC命令教程
svc命令,位置在/system/bin目录下,用来管理电源控制,无线数据,WIFI?1234567891011121314151617181920212223242526272829303132# svcsvcAvai
2014-04-25 20:32:02 946
转载 二层转发流程 (linux网络子系统学习 第六节 )
做为网络设备,二层转发是最基本的功能。要想继续学习linux 内核协议栈,必须明白二层转发的流程。这篇文章举例讲一讲二层转发的流程。二层转发是根据报文的目的MAC直接进行转发,转发过程中不用对报文的头部做任何的修改。三层转发则是根据报文的ip 地址来进行转发,并且要对报文的二层头部进行相应的修改。进行二层转发的设备一般叫做网桥(b
2014-04-18 11:40:47 3616
转载 Git diff ^M的消除
原文:http://blog.csdn.net/csfreebird/article/details/10448493这是由于换行符在不同的操作系统上定义的区别造成的。Windows用CR LF来定义换行,Linux用LF。CR全称是Carriage Return ,或者表示为\r, 意思是回车。 LF全称是Line Feed,它才是真正意义上的换行表示符。为什么Windows
2014-04-17 11:07:06 842
原创 从内核向控制台输出字符串
#include #include #include static int __init tty_write_init(void){ char *str = "hello world! this is from kernel"; struct tty_struct *tty; tty = get_current_tty();
2014-04-11 17:29:33 763
原创 socket编程(二)
client端向server端发送文件。server:#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;int m
2014-04-11 14:01:44 645
转载 收包软中断和netif_rx (linux网络子系统学习 第四节 )
初始化报文接收软中断static int __init net_dev_init(void){ ...... open_softirq(NET_RX_SOFTIRQ, net_rx_action); ......}报文接收软中断的处理函数net_rx_action详解:static void net_rx_action(struct softir
2014-04-11 13:53:59 2145
原创 报文接收方式【总结】
报文接收步骤:一、旧的接收过程1、当网卡中断产生后,内核的中断处理部分会根据网卡驱动注册的中断号找到相应网卡驱动中的中断处理函数。2、中断处理函数首先禁用网卡的接收报文中断。3、接着负责在内存中申请一个skb,把网卡硬件缓存中的报文拷贝到skb中。初始化skb的一些字段,根据报文内容给skb->protocol字段赋值,例如ip报文会赋为0x0800。4、接着调用netif
2014-04-09 11:09:11 4646
转载 C++中的虚函数(virtual function)
1.简介 虚函数是C++中用于实现多态(polymorphism)的机制。核心理念就是通过基类访问派生类定义的函数。假设我们有下面的类层次:class A{public: virtual void foo() { cout };class B: public A{public: virtual void foo() { cout
2014-04-08 22:33:58 488
转载 Linux下获取文件大小的方法
前几天在工作中需要写一段代码,获取一些视频文件的大小,心想:这还不简单吗?直接用标准C 的文件操作函数就OK了。于是写了下面的一段代码来实现:unsigned long get_file_size(const char *filename){unsigned long size;FILE* fp = fopen( filename, "rb" );if(fp==NULL)
2014-04-08 17:46:32 470
原创 socket编程(一)
基本的socket编程。server:#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;int main(int ar
2014-04-08 17:15:22 625
原创 C++如何输入含有空格字符的字符串
http://blog.163.com/wenxianliang08@126/blog/static/835832632010724195686
2014-04-08 16:55:03 2282
转载 bind出现Address already in use解决方法
每次修改了源代码并再次编译运行时,常遇到下面的地使用错误:Cann't bind server socket !: Address already in use虽然用Ctrl+C强制结束了进程,但错误依然存在,用netstat -an |grep 5120和ps aux |grep 5120都还能看到刚才用Ctrl+C“强制结束”了的进程,端口还是使用中,只好每次用kill结束进程,很
2014-04-08 16:25:15 1851
转载 Linux 套接字编程中的 5 个隐患
在 4.2 BSD UNIX® 操作系统中首次引入,Sockets API 现在是任何操作系统的标准特性。事实上,很难找到一种不支持 Sockets API 的现代语言。该 API 相当简单,但新的开发人员仍然会遇到一些常见的隐患。本文识别那些隐患并向您显示如何避开它们。隐患 1.忽略返回状态第一个隐患很明显,但它是开发新手最容易犯的一个错误。如果您忽略函数的返回状态,当它们失败或部分
2014-04-08 16:22:58 631
转载 Why do I get EOF exception while reading a datainputstream in java?
http://stackoverflow.com/questions/19286271/why-do-i-get-eof-exception-while-reading-a-datainputstream-in-java
2014-04-04 17:10:44 742
转载 设置Eclipse的workspace路径
首次启动Eclipse/MyEclipse时, 会弹出"Workspace Launcher"对话框, 提示设置Workspace路径. 设定好路径后, 若勾选了"Use this as the default and do not ask again", 那么以后再启动时就不会有提示, 直接进入默认工作空间. 有3中方法可以更改workspace的路径设置:1. 启动Eclipse/My
2014-04-02 14:46:55 549
转载 NAPI 方式的实现 (linux网络子系统学习 第三节 )
Linux内核协议栈中报文接收的设计思路:NAPI接口和旧接口两者有一下相同点:(1)、对报文的处理都应该放在软中断中处理。(2)、两者都有存储报文的队列,NAPI的队列是由网卡来管理的,旧接口的队列是由内核管理的。每个NAPI设备都有一个轮询函数来由软中断调用,来进行轮询处理报文。我们可以建立
2014-04-02 14:12:02 673
转载 报文的接收方式(linux网络子系统学习 第二节 )
报文的接收是整个协议栈的入口,负责从网卡中把报文接收并送往内核协议栈相应协议处理模块处理。报文的接收方法主要分为两种一种是网卡产生中断,通知内核进行接收报文。一次中断接收一个报文。在中断处理程序中把报文从硬件缓存中拷贝到内存中,并把报文加入到协议栈中对应的入口队列中,中断退出时调用收包软中断来从相应队列来读取报文进行处理。这种方式优点是内核对报文响应较快,在网卡上 有少量报文时效果
2014-04-02 14:11:23 1136
转载 Linux下半部——谁先运行
链接:http://bbs.chinaunix.net/thread-4125504-1-1.html原问:看博客有写到:一个软中断不会去抢占另一个软中断。 个人理解如下:《Linux内核设计与实现》中提到,如果软中断存在共享数据,那么需要进行加锁保护,因为同类型的软中断可以同时在不同的CPU下运行。所以,一个软中断不会去抢占另一个软中断,这句话的是在一个CPU上吧?
2014-04-01 15:08:32 629
转载 linux 内核学习 tasklet 详解
软中断被执行的优先级要高于内核线程。硬中断是可以抢占内核线程的,硬中断退出时会立即执行软中断。这时软中断执行程序是运行在中断上下文的。如果软中断执行程序在指定时间内没处理完,就会挂起来等下次下次被执行。下次被执行可以是另一个硬中断退出时在中断上下文中执行,也可以是在特殊的内核线程ksoftirq被调度到来执行,这时是运行在线程上下文的。总体来说,软中断执行程序被执行的机会会比普
2014-04-01 11:19:28 618
转载 软中断 (linux网络子系统学习 第一节)
整个linux协议栈是运行在软中断环境中,所以学习协议栈首先要了解软中断。第一节就总结一下linux内核中软中断的具体实现。中断的作用:当一个中断信号到达时,CPU必须停止它当前正做的工作,转而去做中断要求其做的事情。中断分为同步中断和异步中断两种。1、同步中断又称异常,是由CPU执行指令时由CPU控制单元产生的。异常又分两种:(1)、 一种是由程序执行出错
2014-03-31 15:41:26 576
转载 wpa_supplicant_control_data_flow
http://wenku.baidu.com/view/72a04769561252d380eb6e48.html
2014-03-22 16:36:57 555
转载 wpa_supplicant软件架构分析
http://wenku.baidu.com/link?url=U0_7GO0N0LuExe3UeTgR3c2UEe2vgCcy5fgb2qXGYEmfx9fd077OM96MmmLm5SsepyBdk99yzYtn8hR7RAk5q96YmtrBUqDz0V4cgNXM1HC
2014-03-22 16:34:15 584
转载 wifi softap(hotspot) porting
wifi softap(hotspot) porting声明:该文件为本人原创,如转载修改及使用其中任何内容,请注明出处及原作者。Author:lanbo(高兆成)E-mail:lanbo_g@126.com如有任何疑问可留言或E-mail1、编译wifi driver修改firmware下载路径,或确认firmware路径A:有些wifi driv
2014-03-21 10:19:50 860
转载 虚函数和纯虚函数的区别
首先:强调一个概念定义一个函数为虚函数,不代表函数为不被实现的函数。定义他为虚函数是为了允许用基类的指针来调用子类的这个函数。定义一个函数为纯虚函数,才代表函数没有被实现。定义纯虚函数是为了实现一个接口,起到一个规范的作用,规范继承这个类的程序员必须实现这个函数。1、简介假设我们有下面的类层次:[cpp] view plaincopyclass
2014-03-20 18:07:27 517
转载 clang带来的clang complete代码补全插件
用vim写C++代码,基本上没多少补全插件可以选.我用的是omnicppcomplete,这个插件靠tags来实现补全,效果差强人意. 前一段时间发现了clang complete,发现效果很好(广告一下:D).所以推荐一下.clang complete是llvm/clang带来的额外功能.clang complete是靠编译C++文件,应该是获得抽象语法树,进而进行补全的.所以,补全效果非
2014-03-20 17:56:27 15461
转载 C++中的namespace用法
关键字namespace定义了一个名字空间,里面的变量和函数,声明在此名字空间外使用须在前面加名字空间名称.例如:#includenamespace my{int a=3;}class test{public:int a;test(){a=1;}void fb(){int a=0;cout}};int main(){tes
2014-03-20 17:53:07 542
转载 C++类模板详解
有时,有两个或多个类,其功能是相同的,仅仅是数据类型不同,如下面语句声明了一个类:class Compare_int{ public : Compare(int a,int b) { x=a; y=b; } int max( ) { return (x>y)?x:y;}int min( )
2014-03-19 17:38:33 575
转载 C++ this 指针详解
在前面曾经提到过: 每个对象中的数据成员都分别占有存储空间,如果对同一个类定义了n个对象,则有n组同样大小的空间以存放n个对象中的数据成员。但是,不同对象都调用同一个函数代码段。那么,当不同对象的成员函数引用数据成员时,怎么能保证引用的是所指定的对象的数据成员呢?假如,对于例9.6程序中定义的Box类,定义了3个同类对象a,b,c。如果有a.volume( ) ,应该是引用对象a中的h
2014-03-19 17:37:55 649
转载 C++函数模板详解
C++提供了函数模板(function template)。所谓函数模板,实际上是建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来代表。这个通用函数就称为函数模板。凡是函数体相同的函数都可以用这个模板来代替,不必定义多个函数,只需在模板中定义一次即可。在调用函数时系统会根据实参的类型来取代模板中的虚拟类型,从而实现了不同函数的功能。看下面的例子就清楚了。例4.7 将例4
2014-03-19 17:37:19 432
转载 GCC 中的inline关键字
inline关键字是C99中新加的,使用的时候,要注意以下两点:1、inline关键字在GCC参考文档中仅有对其使用在函数定义(Definition)上的描述,而没有提到其是否能用于函数声明(Declare)。从inline的作用来看,其放置于函数声明中应当也是毫无作用的:inline只会影响函数在translation unit(可以简单理解为C源码文件)内的编译行为,只要超出了这个范围
2014-03-19 17:18:26 887
转载 An Inline Function is As Fast As a Macro(《Using the GNU Compiler Collection (GCC)》)
By declaring a function inline, you can direct GCC tointegrate that function's code into the code for its callers. Thismakes execution faster by eliminating the function-call overhead; inaddition, if
2014-03-19 17:15:06 727
转载 C++虚函数与虚析构函数
在类中,有两个与众不同的成员函数,那就是构造函数和析构函数。当构造函数与析构函数遭遇继承和多态,它们的运行状况又会出现什么变化呢?多态性是在父类或各子类中执行最合适成员函数。一般来说,只会选择父类或子类中的某一个成员函数来执行。这可给析构函数带来了麻烦!如果有的资源是父类的构造函数申请的,有的资源是子类的构造函数申请的,而虚函数只允许程序执行父类或子类中的某一个析构函数,岂不是注定有一部分
2014-03-19 10:48:56 483
转载 C++多态与虚函数(多态的实现)
多态能够方便我们编写程序,可以让不同的类与它独特的成员函数一一对应。即使我们只是简单地“称呼”,程序也会很明白我们的心思。那么,多态应该如何实现呢?多态的实现在C++中,我们把表现多态的一系列成员函数设置为虚函数。虚函数可能在编译阶段并没有被发现需要调用,但它还是整装待发,随时准备接受指针或引用的“召唤”。设置虚函数的方法为:在成员函数的声明最前面加上保留字virtual。注意,不能把vi
2014-03-18 17:24:49 516
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人