编程的本质是数学问题

学源码是最快的学习方法

Linux网卡驱动程序编写

Linux网卡驱动程序编写 [摘自 LinuxAID] 工作需要写了我们公司一块网卡的Linux驱动程序。经历一个从无到有的过程,深感技术交流的重要。Linux作为挑战微软垄断的强有力武器,日益受到大家的喜爱。真希望她能在中国迅速成长。把程序文档贴出来,希望和大家探讨Linux技术和应用,促进...

2013-09-28 10:15:24

阅读数 1195

评论数 0

Linux TCP/IP协议栈笔记

数据包的接收 作者:kendo Kernel:2.6.12 一、从网卡说起 这并非是一个网卡驱动分析的专门文档,只是对网卡处理数据包的流程进行一个重点的分析。这里以Intel的e100驱动为例进行分析。 大多数网卡都是一个PCI设备,PCI设备都包含了一个标准的配置寄存器...

2013-09-28 10:11:08

阅读数 1164

评论数 0

使用NetBeans IDE开发C程序

建立一个malloc和free的队列,用一个malloc就加入队列(加入行号和函数名),用一个free就放出一个malloc,最后这个队列如果不是空,就说明内存有泄露,反之就可以偷着乐了。

2013-09-28 10:02:34

阅读数 2742

评论数 1

LINUX动态链接库高级应用

在《LINUX下动态链接库的创建与应用》 一文中,我介绍了LINUX动态链接库的基本知识.其要点是:用户根据实际情况需要,利用dlopen,dlsym,dlclose等动态链接库操作函 数,装入指定的动态链接库中指定的函数,然后加以执行.程序中使用很少的动态函数时,这样的做法尚可.如果程序需要调用...

2013-09-28 09:56:13

阅读数 697

评论数 0

LINUX动态链接库的创建与使用

一,LINUX系统中动态链接库的创建与使用 大家都知道,在WINDOWS系统中有很多的动态链接库(以.DLL为后缀的文件,DLL即Dynamic Link Library)。这种动态链接库,和静态函数库不同,它里面的函数并不是执行程序本身的一部分,而是根据执行程序需要按需装入,同时其执行代...

2013-09-28 09:55:31

阅读数 1234

评论数 0

ldconfig动态链接库管理以及修改ld.so.conf.d

将"/usr/local/lib"加入配置文件重 执行命令: echo "/usr/local/lib" >> /etc/ld.so.conf 然后再直接执行: ldconfig

2013-09-28 09:44:11

阅读数 10676

评论数 0

利用TCMalloc替换Nginx和Redis默认glibc库的malloc内存分配

TCMalloc的全称为Thread-Caching Malloc,是谷歌开发的开源工具google-perftools中的一个成员。与标准的glibc库的Malloc相比,TCMalloc库在内存分配效率和速度上要高很多,这在很大程度上提高了服务器在高并发情况下的性能,从而降低了系统的负载。 1...

2013-09-28 09:26:53

阅读数 4033

评论数 0

浅谈无缓存I/O操作和标准I/O文件操作区别 (转载)

首先,先稍微了解系统调用的概念:     系统调用,英文名system call,每个操作系统都在内核里有一些内建的函数库,这些函数可以用来完成一些系统系统调用把应用程序的请求传给内核,调用相应的的内核函数完成所需的处理,将处理结果返回给应用程序,如果没有系统调用和内核函数,用户将不能编写大型应...

2013-09-26 19:03:44

阅读数 783

评论数 0

Nginx内存池--pool代码抽取(链表套路)

作为自由软件的旗舰项目,Richard Stallman 在十多年前刚开始写作 GCC 的时候,还只是把它当作仅仅一个 C 程序语言的编译器;GCC 的意思也只是 GNU C Compiler 而已。经过了这么多年的发展,GCC 已经不仅仅能支持 C 语言;它现在还支持 Ada 语言、C++ 语言...

2013-09-26 18:38:11

阅读数 1125

评论数 0

深度分析define预处理指令

用途一:  定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如:   char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针,   // 和一个字符变量;   以下则可行:   typedef char* PCHAR; // 一般用...

2013-09-26 18:36:49

阅读数 718

评论数 0

各种类型的字节数

int类型比较特殊,具体的字节数同机器字长和编译器有关。如果要保证移植性,尽量用__int16 __int32 __int64吧,或者自己typedef int INT32一下。 C、C++标准中只规定了某种类型的最小字节数(防止溢出) 64位指的是cpu通用寄存器的数据宽度是64位的。找到一...

2013-09-26 18:32:59

阅读数 822

评论数 0

select,epoll,poll比较

select,poll,epoll简介 select select本质上是通过设置或者检查存放fd标志位的数据结构来进行下一步处理。这样所带来的缺点是: 1 单个进程可监视的fd数量被限制 2 需要维护一个用来存放大量fd的数据结构,这样会使得用户空间和内核空间在传...

2013-09-26 18:30:59

阅读数 634

评论数 0

Redis源码分析-TCMalloc

redis很多地方都在调用zmalloc函数 zmalloc在这里定义zmalloc.c void *zmalloc(size_t size) { void *ptr = malloc(size+PREFIX_SIZE); if (!ptr) zmalloc_oom_handle...

2013-09-26 18:16:09

阅读数 1295

评论数 0

PHP5.5的一点变化

之前一直使用eAccelerator,参考:PHP安装eAccelerator   注意PHP5.5以后暂时不能使用eAccelerator 原因:其中一个我知道的是eAccelerator中使用了 php_register_info_logo(EACCELERATOR_VERSION_G...

2013-09-18 18:05:21

阅读数 2298

评论数 0

redis常用命令参考

操作Redis数据库   下面我们来简单的操作一下数据库。在实例开启的情况下:   1、插入数据   redis 127.0.0.1:6379> set name wwl   OK   设置一个key-value对。   2、查询数据   redis 127.0.0.1:637...

2013-09-02 16:06:21

阅读数 3652

评论数 0

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