container_of()宏的简要解析[转载!!!]

作者: 和c/c++相关 2010/11/16 简介:这是container_of()宏的简要解析的详细页面,介绍了和c/c++,有关的知识、技巧、经验,和一些c/c++源码等。 在学习linux驱动的过程中,遇到一个宏叫做container_of。 该宏定义在include/linux/kernel.h中,首先来贴出它的代码: 1. 439/** 2. 440 * container_of - cast a member of a structure out to the containing structure 3. 44...

作者: lxp-linux 发布时间: 01-06

内核调试方法之串口输出

最近遇到了内核调试的一个问题,先列举一下几种调试方式: 1.kdump来调试,信息太多了,不好分析。 2.屏幕输出来调试,可能会导致屏幕显示不是很全的问题。 3.netconsole调试,如果bug出在网络模块上,可能会导致最后的panic信息无法通过网络发送出去。 综合上述原因,如果只是需要少量的调试信息可以使用串口来调试。 串口调试的配置也比较简单: (1)修改grub.conf(或者...

作者: 瀚海书香 发布时间: 01-05

拼图游戏(c语言)

这个拼图游戏是大一时的c语言课程设计: 说明: 游戏说明: 一、游戏难度: l--------------------------简单; m--------------------------一般; h--------------------------困难; 二、游戏玩法 按“↑”、“↓”、“←”、“→”使方块移动; 当结果为下列情况是获胜: 1、 1 2 3 4 5 6 7 8 2、 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 3、 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ...

作者: himdd 发布时间: 01-04

CentOS 修改ls目录的颜色

修改ls目录的颜色 linux系统默认目录颜色是蓝色的,在黑背景下看不清楚,可以通过以下2种方法修改ls查看的颜色 方法一: 1、在~/.bash_profile文件中添加LS_COLORS export LS_COLORS='no=00:fi=00:di=01;33:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;35:*.cmd=01;35:*.exe=01;35:*.com=01;35:*.btm=01;35:*.bat=01;35:*.sh=...

作者: x-fish 发布时间: 01-05

利用Apache的deflate模块压缩HTTP传输量

为了节约带宽,减少网络传输量,加快网速,我们决定对网页进行压缩后再传输给客户. 可以选择gzip或者gzip来压缩. 我们的服务器软件是Apache 2.2.3 / CentOS 5 Apache2.x版本自带了deflate模块,我们可以直接使用(Apache 1.x 使用 modgzip). 配置: vim /etc/httpd/conf/httpd.conf /mod_deflate 查找 应该能找到 LoadModule deflate_module modules/mod_deflate.so 如果前面有#注...

作者: realmon 发布时间: 01-04

miniGui 移植遇到的一个问题configure: error: C..

今天下午按照既定配置交叉编译miniGui 的时候遇到了一个问题: error: C compiler cannot create executables [root]@libminigui-1.6.10#./buildlib-uclinux-44b0x.sh checking build system type... i386-pc-linux-gnu checking host system type... arm-elf-linux-gnu checking target system type... arm-elf-linux-gnu checking for arm-elf-linux-gcc... arm-elf-gcc c...

作者: swet123 发布时间: 01-05

内聚度和耦合度

一、联系 当一个程序段或语句(指令) 引用了其它程序段或语句(指令)中所定义或使用的数据名(即存贮区、地址等)或代码时,他们之间就发生了联系。一个程序被划分为若干模块时,联系既可存在于模块之间,也可存在于一个模块内的程序段或语句之间,即模块内部。联系反映了系统中程序段或语句之间的关系,不同类型的联系构成不同质量的系统。因此,联系是系统设计必须考虑...

作者: sandroli 发布时间: 01-05

Linux环境下USB的原理、驱动和配置

随着生活水平的提高,人们对USB设备的使用也越来越多,鉴于Linux在硬件配置上尚不能全部即插即用,因此关于Linux如何配置和使用,成为困扰我们的一大问题。 什么是USB? USB是英文Universal Serial Bus的缩写,意为通用串行总线。USB最初是为了替代许多不同的低速总线(包括并行、串行和键盘连接)而设计的,它以单一类型的总线连接各种不同的类型 的设备。USB的发展已经超...

作者: thyman126 发布时间: 01-05

编译内核模块 .ko文件的注意事项 缺少:mmzone.h..

前两天新到手一个6410的板子,按照说明在上面跑了一下android和QT,都成了。今天想试试helloworld模块的装载发现了一些需要注意的问题。 出现的问题:编译的时候提示缺少头文件 mmzone.h ....bounds.h...等 include/linux/mmzone.h:18:26: error: linux/bounds.h: No such file or directory include/linux/mmzone.h:197:5: warning: "MAX_NR_ZONES" is not defined 原因:b...

作者: pauleric 发布时间: 01-06

setsockopt getsockopt 函数

setsockopt & getsockopt 函数 功能描述: 获取或者设置与某个套接字关联的选 项。选项可能存在于多层协议中,它们总会出现在最上面的套接字层。当操作套接字选项时,选项位于的层和选项的名称必须给出。为了操作套接字层的选项,应该 将层的值指定为SOL_SOCKET。为了操作其它层的选项,控制选项的合适协议号必须给出。例如,为了表示一个选项由TCP协议解析,层应该设定为协...

作者: xuxiyao8888 发布时间: 01-04