摘要: 一、引言 通常情况下,对函数库的链接是放在编译时期(compile time)完成的。所有相关的对象文件(object file)与牵涉到的函数库(library)被链接合成一个可执行文件(executable file)。程序在运行时,与函数库再无瓜葛,因为所有需要的函数已拷贝到自己门下。所以这些函数库被成为静态库(static libaray),通常文件名为“libxxx.a”的形式。 其... 阅读全文
posted @ 2008-11-11 21:30 alex_lin 阅读(13965) 评论(1) 推荐(2) 编辑
摘要: 和Windows系统一样Linux也有静态/动态链接库,下面介绍创建和使用方法: 假设有下面几个文件: 头文件String.h,声明相关函数原形,内容如下: Strlen.c:函数Strlen的实现,获取给定字符串的长度,内容如下: Strlnen.c:函数StrNlen的实现,获取给定字符串的长度,如果输入字符串的长度大于指定的最大长度,则返回最大长度,否者返回字符串的实际长度,内容如下: ... 阅读全文
posted @ 2008-11-11 21:30 alex_lin 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 作为Linux下的程序开发人员,大家一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便。一般情况下,大家都是手工写一个简单Makefile,如果要想写出一个符合自由软件惯例的Makefile就不那么容易了。 在本文中,将给大家介绍如何使用autoconf和automake两个工具来帮助我们自动地生成符合自由软件惯例的Makefile,这样就 可以象常见的GNU程序一样... 阅读全文
posted @ 2008-11-11 14:56 alex_lin 阅读(503) 评论(1) 推荐(1) 编辑
摘要: Ubuntu Linux的文件结构与Windows的文件结构不同,Windows将硬盘分成C、D、E、F等盘,也就是分成这些分区。 而Linux操作系统不是把硬盘分 成这样的分区,它有一个根目录,用/表示,一个目录就相当于一个文件夹,根目录就相当于Linux系统的总的文件夹。在这个根目录下面,又分为/bin /boot /dev /etc /home /initrd /lib /media /mn... 阅读全文
posted @ 2008-11-10 21:20 alex_lin 阅读(534) 评论(0) 推荐(0) 编辑
摘要: ubuntu 安装RAR 压缩/解压缩程序 RAR 压缩/解压缩程序 Windows下的常用压缩格式zip,我们的应用程序 -> 附件 -> 归档管理器是可以解决的,但是另一种常用压缩格式rar在默认情况下就没有安装,我们这里安装程序RAR来解决这个问题,在命令行输入: sudo apt-get install rar 来下载安装他,然后建立软链接 sud... 阅读全文
posted @ 2008-11-09 18:24 alex_lin 阅读(145) 评论(0) 推荐(0) 编辑
摘要: select系统调用是用来让我们的程序监视多个文件句柄(file descriptor)的状态变化的。程序会停在select这里等待,直到被监视的文件句柄有某一个或多个发生了状态改变。 文 件在句柄在Linux里很多,如果你man某个函数,在函数返回值部分说到成功后有一个文件句柄被创建的都是的,如man socket可以看到“On success, a file descriptor for th... 阅读全文
posted @ 2008-11-08 13:41 alex_lin 阅读(1401) 评论(1) 推荐(0) 编辑
摘要: 调试内核问题时,能够跟踪内核执行情况并查看其内存和数据结构是非常有用的。Linux 中的内置内核调试器 KDB 提供了这种功能。在本文中您将了解如何使用 KDB 所提供的功能,以及如何在 Linux 机器上安装和设置 KDB。您还将熟悉 KDB 中可以使用的命令以及设置和显示选项。 Linux 内核调试器(KDB)允许您调试 Linux 内核。这个恰如其名的工具实质上是内核代码的补丁,它允许高... 阅读全文
posted @ 2008-11-08 13:29 alex_lin 阅读(304) 评论(0) 推荐(0) 编辑
摘要: 云计算和存储将物理资源(例如处理器和存储)转换成 Internet 上可伸缩、可共享的资源(“作为服务” 的计算和存储)。虽然虚拟化不是一个新概念,但是通过服务器虚拟化实现的物理系统共享,的确能使资源的可伸缩性大得多,效率也高得多。云计算使用户可以访 问大规模计算和存储资源,而且他们不必知道那些资源的位置及其是如何配置的。正如您预期的一样,Linux® 在此扮演着极为重要的角色。探索云计算,了解其... 阅读全文
posted @ 2008-11-08 13:28 alex_lin 阅读(280) 评论(0) 推荐(0) 编辑
摘要: PCI是一种广泛采用的总线标准,它提供了许多优于其它总线标准(如EISA)的新特性,目前已经成为计算机系统中应用最为广 泛,并且最为通用的总线标准。Linux的内核能较好地支持PCI总线,本文以Intel 386体系结构为主,探讨了在Linux下开发PCI设备驱动程序的基本框架。 一、PCI总线系统体系结构 PCI是外围设备互连(Peripheral Component Interconne... 阅读全文
posted @ 2008-11-08 13:21 alex_lin 阅读(452) 评论(0) 推荐(0) 编辑
摘要: 在linux下些C语言程序,最大的问题就是没有一个好的编程IDE,当然想kdevelop等工具都相当的强大,但我还是习惯使用kdevelop工具,由于没有一个习惯的编程IDE,内存检测也就成了在linux下编写程序的一个大问题。 是不是说没有一种内存检查工具能够在linux使用呢,也不是,像valgrind工具还是相当不错的。他的下载地址是http://valgrind.org/downlo... 阅读全文
posted @ 2008-11-08 13:17 alex_lin 阅读(389) 评论(0) 推荐(0) 编辑
摘要: 和Windows系统一样Linux也有静态/动态链接库,下面介绍创建和使用方法: 假设有下面几个文件: 头文件String.h,声明相关函数原形,内容如下: Strlen.c:函数Strlen的实现,获取给定字符串的长度,内容如下: Strlnen.c:函数StrNlen的实现,获取给定字符串的长度,如果输入字符串的长度大于指定的最大长度,则返回最大长度,否者返回字符串的实际长度,内容如下: ... 阅读全文
posted @ 2008-11-08 13:05 alex_lin 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 在Linux下我们在使用设备的时候,都会用到write这个函数,通过这个函数我们可以象使 用文件那样向设备传送数据。可是为什么用户使用write函数就可以把数据写到设备里面 去,这个过程到底是怎么实现的呢? 这个奥秘就在于设备驱动程序的write实现中,这里我结合一些源代码来解释如何使得一 个简简单单的write函数能够完... 阅读全文
posted @ 2008-11-08 10:37 alex_lin 阅读(356) 评论(0) 推荐(0) 编辑
摘要: 本文是参考了网上多篇帖子而写的算不上什么原创。唯一值得欣慰的只不过在本机上实现罢了。因为毕竟失败了几次。也因为本人是初学驱动编程 很多简单的问题在我来说是相当的困难的。望有识之士不要笑话。最后,希望本文能给刚学驱动而还没开头的人提供一些帮助。 刚看 O'REILLY 写的《LINUX 设备驱动程序》时。作者一再强调在编写驱动程序时必须 建立内核树。所谓内核树,我的理解和网上资料说的一致就是内核... 阅读全文
posted @ 2008-11-07 10:28 alex_lin 阅读(375) 评论(1) 推荐(0) 编辑
摘要: #include #include #define N 5 /*确定魔方阵的大小*/ main() { long a[N][N]={0}; ... 阅读全文
posted @ 2008-11-06 14:01 alex_lin 阅读(300) 评论(0) 推荐(0) 编辑
摘要: C 语言最大难点揭秘(转) 本文将带您了解一些良好的和内存相关的编码实践,以将内存错误保持在控制范围内。内存错误是 C 和 C++ 编程的祸根:它们很普遍,认识其严重性已有二十多年,但始终没有彻底解决,它们可能严重影响应用程序,并且很少有开发团队对其制定明确的管理计划。但好消 息是,它们并... 阅读全文
posted @ 2008-09-28 13:26 alex_lin 阅读(353) 评论(0) 推荐(0) 编辑