Linux编程
文章平均质量分 67
zhoujunyi
这个作者很懒,什么都没留下…
展开
-
链接库的创建和使用
在/usr/lib目录下面,我们会看到许多的文件形如:libxxx.so,libxxx.a这样的形式。libxxx.a我们称之为静态链接库,或者简称为链接库,libxxx.so称之为共享链接库,或者是动态链接库。=== Archives === 我们编程的时候经常使用一些库,例如我们在编写网络捕获程序的时候,我么你使用libpcap,写网络发包函数的时候,我们使用libnet库。 我转载 2007-12-12 10:25:00 · 1192 阅读 · 1 评论 -
monta vista
最近搞到monta vista linux (CGE4.0),想用它来做Gbps环境下的全线速sniffer。因此特地做了一组测试,同志们看一下 (目标主机为xeon2.66G, 在目标主机上运行tcpdump,统计抓包结果;包长均为1300byte) :流量(smartbits产生) 抓包率(MontaVista) 抓包率(kernel2.6.10)500M转载 2007-09-02 23:39:00 · 906 阅读 · 1 评论 -
pop3 smtp 中 主题 gb2312解码
我用pop3接受邮件,取得的邮件在邮件主题或者正文中出现 =?GB2312?Q?=XX=XX....?=或者=?gb2312?b?XXXXXXXXX?=的字样,中间的XXXX显示就是乱七八糟的英文或者数字的字符。我猜想=?和?=应该起到括号作用,其中的字符使用了GB2312?Q?编码方式或者GB2312?B?编码方式。那个GB2312?Q?还好懂,只要把 =XX翻译成一个字节就可以了。但是原创 2007-05-29 17:05:00 · 1155 阅读 · 1 评论 -
vi常用操作
:%s/abc/def/g将abc替换为def转载 2007-08-25 11:34:00 · 469 阅读 · 0 评论 -
vector与list与deque比较
vector 表示一段连续的内存区域每个元素被顺序存储在这段内存中对vector 的随机 访问比如先访问元素5 然后访问15 然后再访问7 等等效率很高因为每次访问离vector 起始处的位移都是固定的但是在任意位置而不是在vector转载 2007-08-23 11:31:00 · 761 阅读 · 0 评论 -
STL 简介,标准模板库
STL 简介,标准模板库转载 2007-08-22 16:04:00 · 457 阅读 · 0 评论 -
BASE64 加密 解密
一、编码规则 Base64编码的思想是是采用64个基本的ASCII码字符对数据进行重新编码。它将需要编码的数据拆分成字节数组。以3个字节为一组。按顺序排列24位数据,再把这24位数据分成4组,即每组6位。再在每组的的最高位前补两个0凑足一个字节。这样就把一个3字节为一组的数据重新编码成了4个字节。当所要编码的数据的字节数不是3的整倍数,也就是说在分组时最后一组不够3个字节。这时在最后一组转载 2007-05-23 10:41:00 · 789 阅读 · 0 评论 -
linux mysql安装 c语言访问
1. mysql在linux下的编译和安装[root@localhost zieckey]# mkdir /usr/local/mysql[root@localhost zieckey]# cp mysql-4.0.12.tar.gz /home/[root@localhost root]# cd /home/解压[root@localhost home]# tar zxvf mysql-4.0转载 2007-05-15 18:02:00 · 685 阅读 · 0 评论 -
Linux2.6 内核的 Initrd 机制解析
Linux2.6 内核的 Initrd 机制解析转载 2007-08-14 20:11:00 · 911 阅读 · 0 评论 -
浅析GLib
2003 年 5 月 10 日GLib是GTK+和GNOME工程的基础底层核心程序库,是一个综合用途的实用的轻量级的C程序库,它提供C语言的常用的数据结构的定义、相关的处理函数,有趣而实用的宏,可移植的封装和一些运行时机能,如事件循环、线程、动态调用、对象系统等的API。它能够在类UNIX的操作系统平台(如LINUX, HP-UNIX等),WINDOWS,OS2和BeOS等操作系统台上运行。转载 2007-04-26 11:23:00 · 675 阅读 · 0 评论 -
linux命令行参数编程
GNU/Linux的命令行选项有两种类型:短选项和长选项,前者以 - 作为前导符,后者以 -- 作为前导符。比如有一个命令:$ myprog -a vv --add -b --file a.txt b.txt - -- -e c.txt在GNU/Linux系统,对这种情况的一种合理解释是:a是短选项,带一个参数vv;add是长选项,无参数;b是短选项,无参数;file是长选项,原创 2007-04-24 11:41:00 · 2783 阅读 · 0 评论 -
__func__标识符
__func__标识符 __func__是C99标准里面预定义标识符, 它是一个static const char[], 会在每一个使用__func__的函数里隐式定义.下面是ISO9899里的例子#include void myfunc(void){ printf("%s/n", __func__); /* ... */}输出: myfunc 据我所知好像只转载 2007-04-20 13:24:00 · 16026 阅读 · 1 评论 -
gcc设置
如何把gcc的提示变为英文export LC_MESSAGES=en_US ---------------------------------------unset LANG应该可以 export LANG=C ---------------------------------------原创 2007-04-20 13:15:00 · 794 阅读 · 0 评论 -
c语言可变参数函数
一、什么是可变参数我们在C语言编程中有时会遇到一些参数个数可变的函数,例如printf()函数,其函数原型为: int printf( const char* format, ...); 它除了有一个参数format固定以外,后面跟的参数的个数和类型是可变的(用三个点"…"做参数占位符),实际调用时可以有以下的形式: printf("%d",i); printf("%转载 2007-04-19 15:16:00 · 676 阅读 · 0 评论 -
使用libnet与libpcap构造TCP/IP协议软件
2003 年 6 月 01 日本文在RED HAT Linux8.0+以太网环境下,利用libnet和libpcap库实现了一个以太网上用户态的单进程的TCP/IP协议软件包:minitcpip,该软件实现了TCP协议的基本通讯功能,并提供了一个调试接口和一个与标准SOCKET接口类似的接口函数库minisocket,方便用户的调试与应用软件的调用。这个用户态的协议软件包的实现,为学习综合使用原创 2007-04-23 18:37:00 · 1669 阅读 · 1 评论 -
IP分片技术
IP分片技术 链路层具有最大传输单元MTU这个特性,它限制了数据帧的最大长度,不同的网络类型都有一个上限值。以太网的MTU是1500,你可以用 netstat -i 命令查看这个值。如果IP层有数据包要传,而且数据包的长度超过了MTU,那么IP层就要对数据包进行分片(fragmentation)操作,使原创 2007-04-23 13:34:00 · 2312 阅读 · 0 评论 -
回调函数
简介 对于很多初学者来说,往往觉得回调函数很神秘,很想知道回调函数的工作原理。本文将要解释什么是回调函数、它们有什么好处、为什么要使用它们等等问题,在开始之前,假设你已经熟知了函数指针。 什么是回调函数? 简而言之,回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。 为什么要使用回调函数原创 2007-04-21 15:57:00 · 795 阅读 · 0 评论 -
恢复linux系统
作为一个Linux系统管理员,你可能会把Linux 超级用户密码遗忘了,把/etc/inittab或/etc/rc.d/rc.sysinit之类文件误编辑,导致系统不能正常启动的恼人错误? 而为了解决以上问题,你就需要进到linux根文件系统处于可读写状态的单用户模式下。 下面介绍在GRUB引导下进入Linux单用户模式的三种方式: (1) 硬件环境: intel P4转载 2007-09-05 10:57:00 · 861 阅读 · 0 评论 -
系统引导管理器 GRUB 为初学者指南
一、什么是多重操作系统引导管理器,什么是GRUB; 1、什么是多重操作系统引导管理器及工作原理; 系统启动引导管理器,是在计算机启动后运行的第一个程序,他是用来负责加载、传输控制到操作系统的内核,一旦把内核挂载,系统引导管理器的任务就算完成退出,系统引导的其它部份,比如系统的初始化及启动过程则完全由内核来控制完成; Briefly, boot loader is the first s转载 2007-09-05 16:39:00 · 1977 阅读 · 1 评论 -
无线网格网关键技术及其应用研
无线网格网关键技术及其应用研究 作者:傲丹 方旭明 马忠建 来源:北极星电技术网 http://www.csai.cn 2005年08月08日 一、引言 随着人们对网络通信需求的不断提高,人们希望不论何时、何地、与何人都能够进行快速、准确的通信,为了提高工作效率,并且克服现有通信系统的缺点,达到通信的“无 所不在”,最近,人们提出了一种新型的宽带无线网络结构无线网格网转载 2007-09-05 16:54:00 · 1763 阅读 · 0 评论 -
内核编程-基础
《Linux设备驱动程序》 内核编程入门,就以最为简单的hello.c为例。 环境:Redhat 9.0,内核版本2.4.20-8。 虽然现在2.6.x的内核很早就就发布了,但是毕竟很多公司还在使用2.4.x的内核。作为新手,从2.4.x的内核入手是可行的。原因有如下几条: (1)2.4.x比较成熟。可能你遇到的绝大多数问题,网上都有解决方案转载 2007-11-15 15:02:00 · 891 阅读 · 1 评论 -
TRUNK链路
1、 在网络的分层结构和宽带的合理分配方面,TRUNK被解释为“端口汇聚”,是带宽扩展和链路备份的一个重要途径。TRUNK把多个物理端口捆绑在一起当作一个逻辑端口使用,可以把多组端口的宽带叠加起来使用。TRUNK技术可以实现TRUNK内部多条链路互为备份的功能,即当一条链路出现故障时,不影响其他链路的工作,同时多链路之间还能实现流量均衡,就像我们熟悉的打印机池和MODEM池一样。 2、在电信网络的转载 2007-11-08 15:21:00 · 607 阅读 · 1 评论 -
brctl
有五台主机。其中一台主机装有linux ,安装了网桥模块,而且有四块物理网卡,分别连接同一网段的其他主机。我们希望其成为一个网桥,为其他四台主机(IP分别为192.168.1.2 ,192.168.1.3,192.168.1.4,192.168.1.5) 之间转发数据包。同时,为了方便管理,希望网桥能够有一个IP(192.168.1.1),那样管理员就可以在192.168.1.0/24网段内的主机转载 2007-11-08 14:42:00 · 3404 阅读 · 0 评论 -
Bellman-Ford算法
在一个图里每条边都有一个权值(有正有负) 如果存在一个环(从某个点出发又回到自己的路径),而且这个环上所有权值之和是负数,那这就是一个负权环,也叫负权回路 存在负权回路的图是不能求两点间最短路的,因为只要在负权回路上不断兜圈子,所得的最短路长度可以任意小。Bellman-Ford算法 在单源最短路径问题的某些实例中,可能存在权为负的边。如果图G=(V,E)不包含从源s可达的负权回路,则对所有转载 2007-09-29 09:30:00 · 4878 阅读 · 4 评论 -
距离矢量路由算法-bellman ford算法
距离矢量路由算法(Distance Vector Routing Algorithm)是一种类型的路由算法,其在一个路由中重申跳数的个数来寻找一个最短路径生成树。距离矢量路由算法号召每个路由器在每次更新时发送它的整个路由表,但是仅仅给它的邻居。距离矢量路由算法倾向于路由循环,但是比链路状态路由算法计算更简单。也叫做bellman-ford路由算法。 Bellman-Ford算法转载 2007-09-29 09:24:00 · 5124 阅读 · 1 评论 -
linux 内核与用户空间通信之netlink使用方法
Netlink 是一种特殊的 socket,它是 Linux 所特有的,类似于 BSD 中的AF_ROUTE 但又远比它的功能强大,目前在最新的 Linux 内核(2.6.14)中使用netlink 进行应用与内核通信的应用很多,包括:路由 daemon(NETLINK_ROUTE),1-wire 子系统(NETLINK_W1),用户态 socket 协议(NETLINK_USERSOCK),转载 2007-06-18 17:02:00 · 2379 阅读 · 0 评论 -
initrd.img
initrd 的英文含义是 boot loader initialized RAM disk,就是由 boot loader 初始化的内存盘。在 linux内核启动前, bootloader 会将存储介质中的 initrd 文件加载到内存,内核启动时会在访问真正的根文件系统前先访问该内存中的 initrd 文件系统。第一阶段启动的目的是为第二阶段的启动扫清一切障爱,最主要的是加载根文件系统存储介质转载 2007-09-12 11:15:00 · 3789 阅读 · 0 评论 -
使用和制作patch文件
使用和制作patch文件发表时间: 2007-2-13 20:57 作者: superuser 来源: 迷茫人字体: 小 中 大 | 打印 原文http://www.linuxsir.org/bbs/showthread.php?t=240802今天上QQ的时候发现eva不能用了,后来又看到了解决方法,所以想打个补丁,不过不会:-)。后来查了查明白了,写了个总结,分享一转载 2007-09-12 19:28:00 · 10039 阅读 · 0 评论 -
valgrind内存检测工具
用C/C++开发其中最令人头疼的一个问题就是内存管理,有时候为了查找一个内存泄漏或者一个内存访问越界,需要要花上好几天时间,如果有一款工具能够帮助我们做这件事情就好了,valgrind正好就是这样的一款工具。Valgrind是一款基于模拟linux下的程序调试器和剖析器的软件套件,可以运行于x86, amd64和ppc32架构上。valgrind包含一个核心,它提供一个虚拟的CPU运行程序,还有一转载 2007-09-11 15:40:00 · 4219 阅读 · 2 评论 -
关于以太帧的大小
以太网最小包长为60字节 最大传输数据帧的长度为1500字节,为什么这里比较上限是1536 答: 以太网数据帧最小为60字节,最大为1500字节 也就是MTU ,这个MTU是包含了上层协议头和payload , 再加上以太网14字节的头部 和4个字节的crc 才1518,可是代码了怎么判断的是1536呢? 自己找到的一些答案 ,给大家分享一下了:)MTU在IEEE 8原创 2007-06-12 14:14:00 · 1891 阅读 · 0 评论 -
Linux下的内存泄露检测工具
Linux下的内存泄露检测工具 01) MallocDebug 02) Valgrind 03) Kcachegrind 04) ElectricFence. 05) dmalloc 06) ccmalloc 07) LeakTracer 08) memprof 09) BoundsChe原创 2007-09-11 15:35:00 · 914 阅读 · 0 评论 -
Linux环境进程间通信(二): 信号(下)
Linux环境进程间通信(二): 信号(下)级别: 初级郑彦兴 (mlinux@163.com)国防科大2003 年 1 月 01 日在信号(上)中,讨论了linux信号种类、来源、如何安装一个信号以及对信号集的操作。本部分则首先讨论从信号的生命周期上认识信号,或者宏观上看似简单的信号机制(进程收到信号后,作相应的处理,看上去再简单不过了),在微观上究竟是如何实现的,也是在更深层次原创 2007-06-06 17:47:00 · 476 阅读 · 0 评论 -
Linux环境进程间通信(二): 信号(上)
Linux环境进程间通信(二): 信号(上) 级别: 初级郑彦兴 (mlinux@163.com)国防科大2003 年 1 月 01 日 linux信号机制远远比想象的复杂,本文力争用最短的篇幅,对该机制做了深入细致的分析。读者可以先读一下信号应用实例(在信号(下)中),这样可以对信号发送直到相应的处理函数执行完毕这一过程有个大致的印象。本文尽量给出了较新函数的应用实例,着转载 2007-06-06 15:01:00 · 611 阅读 · 0 评论 -
《Linux环境进程间通信(一):管道及有名管道》
Linux环境进程间通信(一)管道及有名管道级别: 初级郑彦兴 (mlinux@163.com)国防科大计算机学院 2002 年 12 月 11 日在本系列序中作者概述了 linux 进程间通信的几种主要手段。其中管道和有名管道是最早的进程间通信机制之一,管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程转载 2007-06-05 13:28:00 · 663 阅读 · 1 评论 -
WDS Mesh MIMO
WDS(Wireless Distribution System),无线分布式系统:是建构在HFSS或DSSS底下,可让基地台与基地台间得以沟通,比较不同的是有WDS的功能是可当无线网路的中继器,且可多台基地台对一台,目前有许多无线基台都有WDS. WDS把有线网路的资料,透过无线网路当中继架构来传送,藉此可将网路资料传送到另外一个无线网路环境,或者是另外一个有线网路.因为透过无线网路形成虚拟转载 2007-09-06 13:25:00 · 773 阅读 · 0 评论 -
Mesh路由技术应用发展解析
随着近年来计算机和无线通信技术的发展,移动无线计算机技术得到了越来越广泛的普及和应用。由于不再受到线缆铺设的限制,配备移动计算机设备的用户能够方便而自由地移动,并可以与其他人在没有固定网络设施的情况下进行通讯。对于这样的情况,他们可以组成一个移动Adhoc网络,或者组成移动的无线网状网。移动的无线网状网是一个无线移动路由器(及其连接主机)组成的自主系统。该系统能够随机移动,可自动适应网络拓扑更新,转载 2007-09-05 17:42:00 · 1095 阅读 · 0 评论 -
修改配置文件后不重启程序即时生效
SIGHUP信号与控制终端--------------------------------------------------------------------------------------------------------------------------------------------------unix中进程组织结构为 session 包含一个前台进程组及一个或多个后原创 2007-04-20 16:53:00 · 2919 阅读 · 1 评论 -
函数指针和回调函数
你不会每天都使用函数指针,但是,它们确有用武之地,两个最常见的用途是把函数指针作为参数传递给另一个函数以及用于转换表(jump table)。 【警告】简单声明一个函数指针并不意味着它马上就可以使用。和其它指针一样,对函数指针执行间接访问之前必须把它初始化为指向某个函数。下面的代码段说明了一种初始化函数指针的方法。 int f(int); int (*pf转载 2007-04-19 10:54:00 · 676 阅读 · 0 评论 -
在 Linux 下用户空间与内核空间数据交换的方式---第 1 部分: 内核启动参数、模块参数与sysfs、sysctl、系统调用和netlink
==原创 2007-04-19 10:20:00 · 560 阅读 · 0 评论 -
squid编译参数说明
./configure 脚本有大量的不同选项,它们以-开始。当你敲入./configure --help 时,能看到选项的完整列表。一些选项对所有configure 脚本是通用的,还有一些是squid 专有的。下面是你可能用得到的标准选项: --perfix =PREFIX 如前面描述的一样,这里设置安装目录。安装目录是所有可执行文件,日志,和配置文件的默认目录。在整本书中,$prefix 指原创 2007-04-12 09:14:00 · 1013 阅读 · 0 评论