主题:钩子函数简析及实例

钩子函数、回调函数、注册函数,挂钩子这些我们代码中经常涉及到的东西,是否已经困扰你很久了?它们究竟是怎么回事,究竟怎么用?下面我来为你一一解答。 什么是钩子函数? 钩子函数也叫回调函数,是通过函数指针来实现的,那我们来看看什么是函数指针。 首先看看以下例子: int *p;...

2014-09-17 11:41:12

阅读数 5840

评论数 6

《UNIX环境高级编程》笔记--read函数,write函数,lseek函数

1.read函数 调用read函数从文件去读数据,函数定义如下: [cpp] view plaincopyprint? #include    ssize_t read(int filedes, void* buff, size_t nbytes);   #in...

2014-03-21 16:38:19

阅读数 738

评论数 0

写给中产阶层的几条投资理财建议

吴向宏 先 定义一下,我所认为的国内中产阶层,是指受过较高等教育、有较稳定工作和社会保障、特别是有城市户口的中等收入人群,基本上就是城市白领。国外的中产阶层往往也包括制造业和劳动密集型的服务业工人,因为他们收入达标,社会地位也和白领阶层相同。中国的制造业和劳动密集型服务业从业人员,尽管收入...

2014-03-14 22:38:39

阅读数 1369

评论数 0

自己动手编译Linux内核

原始出处      、作者信息和本声明。否则将追究法律责任。     http://sprocessor.blog.51cto.com/160089/28903     整理了一下Linux内核编译的方法,原始内核版本为Linux-2.4.20.8,新内核版本为Linux-2.4...

2014-03-05 22:00:40

阅读数 732

评论数 0

linux常用查看硬件设备信息命令

# uname -a               # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue   # 查看操作系统版本 # cat /proc/cpuinfo      # 查看CPU信息 # hostname               # 查看计算机...

2014-02-28 20:36:48

阅读数 737

评论数 0

linux rtc驱动

Linux的RTC驱动相对还是比较简单的,可以将它作为一个普通的字符型设备,或者一个misc设备,也可以是一个平台设备,这都没有关系,主要还是对rtc_ops这个文件操作结构体中的成员填充,这里主要涉及到两个方面比较重要:   1. 在Linux中有硬件时钟与系统时钟等两种时钟。硬件时钟是指主...

2014-02-25 17:15:10

阅读数 1088

评论数 0

深入理解linux网络技术内幕--通知链

一 通知链概述:   大多数内核子系统都是相互独立的,因此某个子系统可能对其它子系统产生的事件感兴趣。为了满足这个需求,也即是让某个子系统在发生某个事件时通知其它的子系统, Linux内核提供了通知链的机制。通知链表只能够在内核的子系统之间使用,而不能够在内核与用户空间之间进行事件的通知。通知...

2014-02-24 20:11:02

阅读数 1527

评论数 1

linux网络学习之分配net_device结构体

一 网络设备利用net_device结构体来定义,该结构体定义在头函数:kernel/linux/netdevice.h,该结构体的使用函数定义在函数:kernel/net/core/dev.c中:      该结构体是有函数:alloc_netdev_mps进行分配。 二 alloc_net...

2014-02-24 08:54:04

阅读数 5263

评论数 1

linux下PCI设备驱动程序之注册详解

一 识别方式:   天朝为了方便每个人的管理,搞了一套身份识别的玩意(档案和身份证)。kernel本省就像一个社会,每个进来的设备必须要有它独特的名字和一些档案。 这个工作对PCI来说,它是由pci_device_id这个结构体来进行身份信息保存的: 17 struct pci_devic...

2014-02-22 13:33:22

阅读数 2586

评论数 0

Linux内核态与用户态进程通信方法-用户上下文

运行在用户上下文环境中的代码是可以阻塞的,这样,便可以使用消息队列和 UNIX 域套接字来实现内核态与用户态的通信。但这些方法的数据传输效率较低,Linux 内核提供 copy_from_user()/copy_to_user() 函数来实现内核态与用户态数据的拷贝,但这两个函数会引发阻塞,所以不...

2014-02-19 19:53:09

阅读数 4686

评论数 1

解决隐式声明与内建函数不兼容问题

一 运行一段带有memset,memcpy等函数操作的代码,编译器上报如下错误: netlink-exam-user-send.c: 在函数‘main’中: netlink-exam-user-send.c:39: 警告: 隐式声明与内建函数‘memset’不兼容 netlink-exam-...

2014-02-19 08:23:04

阅读数 13326

评论数 0

套接字中的数据转换(大端模式/小端模式)

通常使用的有两种数据类型:短型(两个字节)和长型(四个字节)。     下面介绍的这些转换函数对于这两类的无符号整型变量都可以正确的转换。      如果你想将一个短型数据从主机字节顺序转换到网络字节顺序的话,有这样一个函数htnos:     它是以"h”开头的,代表“主机”;...

2014-02-17 08:29:23

阅读数 810

评论数 0

通过proc文件系统输出必要的Linux内核信息(下)

3、使用seq_file接口的例子     本例通过/proc/seq_file_test文件输出Linux内核的十个随机数,并与printk打印的信息进行比较。     (1)、例子源代码  [cpp] view plaincopyprint? #include  ...

2014-02-15 10:12:09

阅读数 715

评论数 0

通过proc文件系统输出必要的Linux内核信息(中)

2、使用旧式proc接口的例子     本示例比较简单,先通过kmalloc函数分配一段TANGLINUX_LEN大小的内存,然后通过tanglinux_read和tanglinux_write函数来实现对这段内存的读写操作。     (1)、例子源代码  [cpp] view ...

2014-02-15 10:11:05

阅读数 893

评论数 0

通过proc文件系统输出必要的Linux内核信息(上)

开发平台:Ubuntu 11.04     编译器:gcc version 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4)     内核源码:linux-2.6.38.8.tar.bz2       proc是基于内存的文件系统,用来实现外界与Linux内核的信息...

2014-02-14 13:31:45

阅读数 1111

评论数 0

linux的poll机制

Poll就是监控文件是否可读的一种机制,作用与select一样。 应用程序的调用函数如下: int poll(struct pollfd *fds,nfds_t nfds, int timeout); Poll机制会判断fds中的文件是否可读,如果可读则会立即返回,返回的值就...

2013-12-09 08:26:45

阅读数 687

评论数 0

UDP的send、sendto和sendmsg测试代码

#include #include #include #include #include #include #include void udp_test(int mode, const char *saddr,unsigned short port, const c...

2013-11-07 10:27:19

阅读数 4648

评论数 0

内核宏ALIGN的含义

在linux2.6.30.4中,在include/linux/kernel.h文件中,ALIGN宏的定义如下: [cpp] view plaincopyprint? #define ALIGN(x,a)      __ALIGN_MASK(x,(typeof(x))(a...

2013-10-24 13:49:33

阅读数 803

评论数 0

推荐几个学习linux的国外著名论坛网站

http://crunchbanglinux.org/forums/forum/8/tips-tricks-scripts/ http://bbs.archlinux.org/ http://www.linuxforums.org/ http://www.linuxsir.org/bbs/i...

2013-10-22 20:43:14

阅读数 758

评论数 0

TCP/IP协议简介

一、分层: TCP/IP通常被认为是一个四层协议系统: 应用层: Telnet(远程登录)、FTP(文件传输协议)和e_mail等 运输层: TCP(传输控制协议)和UDP(用户数据协议) 网络层: IP(网际协...

2013-10-22 20:38:56

阅读数 3439

评论数 1

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