linux动态库的编译与使用
原文地址:http://hi.baidu.com/linuxlife/blog/item/0d3e302ae2384d3a5343c1b1.html
Linux下的动态库以.so为后缀,我也是初次在Linux下使用动态库,写一点入门步骤,以便以后能方便使用。
第一步:编写Linux程序库
文件1.动态库接口文件
//动态库接口文件getmaxlen.h
#ifndef _GETMAXLEN_H_
#define _GETMAXLEN_H_
int getMaxLen(int *sel,int N);
#endif
文件2.动态库程序实现文件
//动态库程序实现文件getmaxlen.c
#include "getmaxlen.h"
int getMaxLen(int *sel,int N)
{
int n1=1,n2=1;
for(int i=1;i<N;i++)
{
if(sel[i]>sel[i-1])
{
n2 ++;
if(n2 > n1)
{
n1 = n2;
}
}
else
{
n2 = 1;
}
}
return n1;
}
第二步:编译生成动态库
gcc getmaxlen.c –fPIC –shared –o libtest.so
由以上命令生成动态库libtest.so,为了不需要动态加载动态库,在命令时需以lib开头以.so为后缀。
–fPIC:表示编译为位置独立的代码,不用此选项的话编译后的代码是位置相关的所以动态载入时是通过代码拷贝的方式来满足不同进程的需要,而不能达到真正代码段共享的目的。
–shared:指明编译成动态库。
第三步:使用动态库
1. 编译时使用动态库
文件1.动态库使用文件test.c
//使用动态库libtest.so,该文件名为test.c
#include "getmaxlen.h"
int main()
{
相关文档:
Service Discovery Protocol(SDP)提供一种能力,让应用程序有方法发现哪种服务可用以及这种服务的特性。
服务发现协议(SDP或Bluetooth SDP)在蓝牙协议栈中对蓝牙环境中的应用程序有特殊的含意,发现哪个服务是可用的和确定这些可用服务的特征。SDP定义了bluetooth client发现可用bluetooth server服务和它们的特征的方法。 ......
一、进程控制:
fork
创建一个新进程
clone
按指定条件创建子进程
execve
运行可执行文件
exit
中止进程
_exit
立即中止当前进程
getdtablesize
进程所能打开的最大文件数
getpgid
获取指定进程组标识号
setpgid
设置指定进程组标志号
getpgrp
获取当前进程组标识号
setpgrp
设置当前进程组标志号
g ......
选定行的范围:,逗号
$ sed -n '/test/,/check/p'
example--所有在模板test和check所确定的范围内的行都被打印。
$ sed -n '5,/^test/p'
example--打印从第五行开始到第一个以test开始的行之间的所有行。
$ sed '/test/,/check/s/$/sed te ......
拓波秉承不断开拓进取的精神,在技术研发和支持上不断的投入人力物力,力求在不断变化的市场需求中,达到100%的客户满意度。在刚刚踏入2010年,根据过往的市场调查,结合客户的需求和建议,拓波邮件系统推出了Linux_安腾版本,作为新春送给广大客户的第一份礼物。
安腾处理器是最近十年才逐渐发展起来的,是英特尔 ......
如何设置redhat linux的IP?
可以进入/etc/sysconfig/network-scripts。找到ifcfg-eth0.编辑它如下:
DEVICE = eth0
ONBOOT = yes
BOOTPROTO = static
IPADDR= 10.9.100.221(你需要的固定ip)
......