易截截图软件、单文件、免安装、纯绿色、仅160KB

linux库文件编写入门【摘自 chinaunix】

转贴自: http://hi.baidu.com/harrybobo/blog/item/ae3347b51711afc637d3ca69.html
一、为什么要使用库文件
我们在实际编程工作中肯定会遇到这种情况:有几个项目里有一些函数模块的功能相同,
实现代码也相同,也是我们所说的重复代码。比如,很多项目里都有一个用户验证的功能。
代码段如下:
//UserLogin.h文件,提供函数声明
int IsValidUser(char* username, int namelen);
    //UserLogin.c文件,实现对用户信息的验证
int IsValidUser(char* username, int namelen)
{
   int IsValid = 0;
   /*下面是具体的处理代码,略去*/
   return IsValid
}
如果每个项目都保存着这两个UserLogin.h和UserLogin.c文件,会有以下几个弊端:
1、每个项目里都有重复的模块,造成代码重复。  
2、代码的重用性不好,一旦IsValidUser的代码发生了变化,为了保持设计的一致性,我们还要手工修改其他项目里的UserLogin.c文件,既费时又费力,还容易出错。  
库文件就是对公共代码的一种组织形式。
为了解决上面两个弊端,就提出了用库文件存放公共代码的解决方案,其要点就是把公共的(也就是可以被多次复用的)目标代码从项目中分离出来,统一存放到库文件中,项目要用到这些代码的时候,在编译或者运行的时候从库文件中取得目标代码即可。库文件又分两种:静态库和动态库。
二、静态库与动态库
    如果程序是在编译时加载库文件的,就是使用了静态库。如果是在运行时加载目标代码,就成为动态库。换句话说,如果是使用静态库,则静态库代码在编译时就拷贝到了程序的代码段,程序的体积会膨胀。如果使用动态库,则程序中只保留库文件的名字和函数名,在运行时去查找库文件和函数体,程序的体积基本变化不大。
静态库的原则是“以空间换时间”,增加程序体积,减少运行时间;
动态库则是“以时间换空间”,增加了运行时间,但减少了程序本身的体积。
下面我们就以实际例子来看看如何使用这两种库.
三、静态库的编写和使用
1、概述
静态库文件的扩展名一般为.a,其编写步骤很简单。
⑴编写函数代码
⑵编译生成各目标文件
⑶用ar文件对目标文件归档,生成静态库文件。
注意归档文件名必须以lib打头。
使用要点:
⑴在gcc 的-I参数后加上静态库头文件的路径。
⑵在gcc 的-L参数后加上库文件所在目录
⑶在gcc 的-l参数后加


相关文档:

linux下的ssh、telnet登录脚本(tcl)

 操作系统:linux(feroda4)
tcl版本:tclsh8.4
expect:5.43.0
ssh登录脚本
#!/usr/bin/tclsh8.4
package require Expect
set user "root"
set host "10.2.26.30"
spawn ssh $user@$host
expect {
             -re "password: $"       ......

linux装JDK和eclipse问题解决

 我用的UBUNTU9.04 。
装JDK时出现了Deleting temporary files...
屏幕持续十几分钟都还是Deleting temporary files...看来是装不了了。重新开始装一次
sudo chmod a+x ./jre-6u16-linux-i586.bin
sudo ./jre-6u16-linux-i586.bin
然后在终端配置环境变量:
export JAVA_HOME=/usr/java/jdk1.6.0_16
 &n ......

Linux学习笔记

第四讲 目录 (video07,08,09,10) 强制位与冒险位:针对u,g,o分别有set uid,set gid,及sticky。
set uid: chmod u+s DirName 
set gid: chmod g+s DirName 
sticky:   chmod o+t DirName
例如:ls –l /bin/ping 使用了set uid,保证任何用户执行ping命令时都是以root用户身份. ......

一个linux下g++使用的 makefile 模板

 refer:http://www.cnblogs.com/diylab/archive/2008/04/24/1169771.html
这个makefile可用于编译大多数的c++工程。
你可以根据需要修改下面的参数:
VPATH: 源文件的文件路径。多个文件夹路径用空格分隔
OBJ: 编译目标所需要的.o文件
当然,你也可以不改动此文件,而直接在 make 命令的参数中指定
如:
make ......

linux下实现多线程同步(一)

参考资料:http://baike.baidu.com/view/400319.htm
 Linux系统下的多线程遵循POSIX线程接口,称为pthread。编写Linux下的多线程程序,需要使用头文件pthread.h,连接时需要 使用库libpthread.a。顺便说一下,Linux下pthread的实现是通过系统调用clone()来实现的。clone()是Linux所特 有的系统调用,它的使用方式类似 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号