Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

Linux内核中的红黑树的使用

Linux内核中的红黑树的使用

最近需要使用红黑树,在网上查找资料的时候无意中发现linux内核中有个红黑树的实现,并且其代码非常的独立,现把它摘录出来。我摘录自2.6.24的内核,分为两个文件rbtree.h和rbtree.c,rbtree.h位于内核源码的include/linux目录中,rbtree.c位于内核源码的lib目录中。rbtree.h中删除#include 和#include 两行,添加#include 对于rb_node的声明删除掉最后的__attribute__((...
Linux vi中移动光标命令

Linux vi中移动光标命令

Linux vi中移动光标命令 移动光标上:k nk:向上移动n行 9999k或gg可以移到第一行 G移到最后一行下:j nj:向下移动n行左:h nh:向左移动n列右:l nl:向右移动n列 w:光标以单词向前移动 nw:光标向前移动n个单词 光标到单词的第一个字母上b:与w相反e: 光标以单词向前移动 ne:光标向前移动n个单词 光标到单词的最后一个字母上ge:与e相反$:移动光标到行尾 n$:移动到第n行的行尾0(Num):移动光标到行首^:移动光标...
关于Linux的socket的一个奇怪现象

关于Linux的socket的一个奇怪现象

在Linux下使用一个TCP Socket进行Listen的时候,最近发现一个诡异的问题。 accept(2)是可以接受一个sockaddr指针来返回一个远端主机的地址,但是,实际情况是,如果这个连接是这个程序第一次发生的时候,是没有获得任何数据的,从第二次开始就没有这个问题,也就是紧跟这accept函数使用一个getpeername(2),即可以得到连接的主机的IP地址,从这以后开始的连接都没有这个问题。可是,如果accept中如果用accept(so...
编译Linux2.6.x内核驱动的makefile文件

编译Linux2.6.x内核驱动的makefile文件

##文件说明,编译2.6.x的Linux驱动的makefile文件# 作者:wyj# 创建时间:2008-09-23##使用说明:# 变量DRI_NAME MOD_NAME NOD_NAME 分别设置伪驱动程序的名称,生成模块的名称和设备节点的名称# 使用make install进行安装驱动 需要root权限# 使用make uninstall进行卸载驱动 需要root权限# 使用make clean清除多余的文件,包括生成的模块代码# 驱动名称DRI_N...
Linux下静态库的使用与创建

Linux下静态库的使用与创建

Linux下类库主要有静态库和动态库两种库。其中,静态库在程序连接的时候会自动的连接到程序里,所以一但编译完成,静态库也就不需要了。静态库通常以.a结尾。例如:libutil.a libuuid.a libz.a等。而动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在。通常以.so结尾。如:libz.so。因此,静态库相对于共享库来说有更高的效率但是也要消耗更多的空间。值得注意的是,如果既有静态库又有动态...
Linux声音设备编程实例初学

Linux声音设备编程实例初学

由于这些文件不是普通的文件,所以我们不能用ANSIC(标准C)的fopen、fclose等来操作文件,而应该使用系统文件I/O处理函数(open、read、write、lseek和close)来处理这些设备文件。ioctl()或许是Linux下最庞杂的函数,它可以控制各种文件的属性,在Linux声音设备编程中,最重要的就是使用此函数正确设置必要的参数。下面我们举两个实际的例子来说明如何实现Linux下的声音编程。由于此类编程涉及到系统设备的读写,所以,很多...
适合阅读的Linux内核

适合阅读的Linux内核

比较值得学习的Linux内核源代码:Linux 1.0:【原因】这是Linux的第一个正式版,相对Linux0.11而言,Linux1.0支持网络,每个进程配有4GB地址空间,支持 SCSI 驱动,支持虚拟内存、虚拟控制台、文件符号链接、作业控制,支持CD-ROM,支持动态链接库,能运行 X-Window 程序,可以实现数学协处理器的软件模拟等等。最重要的一点是,内核源代码包不大,适合阅读。(若是现在的2.6版本或其它高版本就免了吧,上千万行的代码,不适合...
QT4编译不成功的一些原因总结及编译方法

QT4编译不成功的一些原因总结及编译方法

网上有太多QT编译不过的问题,最近经过无数次编译后总结出大部分QT编译不过的原因是在configure的时候就已经搞错了一、QT的configure,如果不带-prefix参数时默认安装路径为/usr/local/Trolltech/Qt-X.X.X,所以如果你的QT目录下在此目录下,则不能直接使用不带参数的configure二、如果带了使用configure -prefix,但不指定目录,假设QT目录为/home/crob/QT/qt-4.4.2,则此时...
Linux下删除文本文件中的所有空行

Linux下删除文本文件中的所有空行

在许多时候,我们的文本文件中会出现许多空行,这些都是我们不想要的,大多时候我们会选择手工一行一行的删除,这样显然太麻烦。况且当文件的行数很多的时候,其麻烦程度是我们不能忍受的。所以我们需要这样一个工具,可以达到删除所有空行的目的,并且最好还能一次处理多个文件。由此我在Linux下写了一个这样的工具,支持一次处理多个文件,并且在给出的文件不存在的情况下给出提示。当然为方便期间,我们可以将该shell程序赋予可执行权并放入/bin下,这样我们就可以像使用she...
web服务器lighttpd1.4.18代码详细分析

web服务器lighttpd1.4.18代码详细分析

lighttpd是目前非常流行的web服务器,很多流量非常大的网站(如youtube)使用的就是lighttpd,它的代码量不多,但是设计巧妙,效率高,功能完备(这是它将来能取代Apache的重要因素),编码风格优美, 是学习网络编程,熟悉http服务器编写的良好范例.在我初学网络编程的时候,就是看的lighttpd的源码进行学习,在其中学到了不少的技巧.我打算将这些写出来与别人分享,可能开始比较杂乱,也不会作完全的分析,因为很多部分的代码我也没有看过,写...
<< 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 >>