liunx
文章平均质量分 53
daemon_zhdwei
这个作者很懒,什么都没留下…
展开
-
liunx pipe
1、 管道概述及相关API应用 1.1 管道相关的关键概念 管道是Linux 支持的最初Unix IPC形式之一,具有以下特点: 管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道;只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程);单独构成一种独立的文件系统:管道对于管道两端的进程而言,就是一个文件,但它不是普通的文件,它不属于某种文件系统,而是自立门户,单转载 2012-03-31 11:45:12 · 351 阅读 · 0 评论 -
gdb和dbx
类UNIX下C/C++开发,代码调试比较麻烦,最原始的加跟踪调试很土,也很费时,特别是一个庞大的项目,代码行数非常大的时候调试起来非常费劲,当core dump时定位也不容易,这里介绍几个常用工具: gdb、dbx调试工具,valgrind内存检查工具(Linux) 。 gdb(GNU DeBugger)是GNU的调试器,一般和gcc配搭使用。要使用GDB进行调试,编译程序时要指定-g或-g转载 2012-03-31 11:57:36 · 601 阅读 · 0 评论 -
page_to_pfn和pfn_to_page
PFN => Page Frame Number 页帧号 在内核源代码中 找出如下代码。 #define PHYS_PFN_OFFSET (CONFIG_PHYS_OFFSET >> PAGE_SHIFT) #define pfn_to_page(pfn) (mem_map + ((pfn) - PHYS_PFN_OFFSET)) #define page_to_pf原创 2012-08-08 12:50:32 · 2034 阅读 · 0 评论 -
kref
本文简单介绍了设备驱动模型中最最简单的一个数据结构:kref,它作为内核中最基本的引用计数而存在。 首先直观地介绍该数据结构及操作它的一些方法,然后再介绍其具体的用法。参考:kref.h kref.c kref.txt 一、kref及操作kref的方法 struct kref { atomic_t refcount; }; 可以看到kref结构体的成员只有一个原子变量refcou转载 2012-10-01 13:45:06 · 830 阅读 · 0 评论 -
pthread_create用法上的小问题
天解决了困扰我好久的一个问题:短信网关内存不断攀升(好像看似内存泄露)。兴奋之余,积极响应ds和小飞鱼的号召,把此问题分享出来。虽然可供参考的部分并不多,但是也有一定的反面教材意义:-) 问题描述: 原有的短信网关,每产生一个socket连接,就会create一个或多个thread去处理这个socket上的数据收发(数据收发是在 CTCPConnection类中完成,这个类自动创建线程)。转载 2012-12-05 17:47:01 · 563 阅读 · 0 评论 -
linux 线程函数大全
线程 创建一个缺省的线程 缺省的线程的属性: l 非绑定 l 未分离 l 一个缺省大小的堆栈 l 具有和父线程一样的优先级 用 phread_attr_init() 创建一个缺省的属性对象, 用属性对象创建一个线程 pthread_create(3T) int p thread_create ( pthr转载 2012-12-05 18:38:54 · 407 阅读 · 0 评论