1.静态库的创建及使用;
所谓静态库,是由xxx.c程序编译生成的一个 lib库名.a 的一个二进制文件,当你需要使用该库的某个函数时,其内容被编译链接到可执行文件中,因此在运行时无需依赖外部库文件。使用静态库可以使可执行文件的大小更小,因为它不需要依赖于外部的库文件,同时运行的速度也更快。
第一步:准备相应的源程序和头文件;
add.h文件------
#ifndef _ADD_H_
#define _ADD_H_//对函数的声明
int add(int m,int n,int k);#endif
main.c文件------
#include<my_head.h>
#include "add.h"
int main(int argc, const char *argv[])
{
printf("1+2+3=%d\n",add(1,2,3));
return 0;
}add.c文件------
int add(int m,int n,int k)
{
return m+n+k;
}
第二步:将源程序编译生成静态库;
gcc -c add.c -o add.o //生成二进制文件add.o
ar -crs libadd.a add.o //依赖add.o生成名为add.a的静态库
第三步:使用静态库;
gcc main.c -L ../lib -ladd -I ../include
//gcc 主程序 -L 库的路径 -l库名 -I 头文件路径
2.静态库的创建及使用;
所谓动态库,也是一个二进制文件,后缀是 lib库名.so ,当需要使用该库中的函数时,直接进行调用即可。其内容不被编译链接到可执行文件中,而是在程序运行时需要时通过动态链接载入内存,可执行程序体积较小,多个程序可以共享一个动态库。
第一步:使用静态库的源程序和头文件;
第二步:将源程序编译生成动态库;
gcc -fPIC -c add.c -o add.o
gcc -shared add.o -o libadd.so
第三步:使用动态库;
sudo mv linadd.so /lib //将自定义的库放入/lib中
gcc main.c -L /lib -ladd -I ../include
3.通过指令cat/proc/sys/kernel/pid_max查看创建的进程的最多数量,/proc$ ls查看正在运行的进程号;
4.查看进程的命令:ps
4.1 ps -ef :用于显示进程间的关系;
4.2 ps -ajx :用于显示进程的状态;
4.3 ps -aux :可以显示进程所在计算机资源的百分比;
5.给进程发信号指令:kill指令;
5.1 kill -l :查看所有信号;
5.2 kill -信号号 PID:给进程发信号;
例如kill -9 PID 杀死进程;
例如killall 进程名:杀死所有名为进程名的进程;
5.3 pidof 可执行程序名:查看某个进程PID;
5.4 top :动态查看运行的进程状态;
5.5 pstree :显示进程的关系树;
6.进程的切换;
6.1 运行程序查看状态(s+表示不可中断的休眠态,+表示前台运行);
6.2 对着正在执行的进程,按ctrl+z,相当于(kill-19 pid),会暂停一个进程(T表示停止态);
6.3 想要让该进程重新运行(S表示后台运行),kill -18 pid 或者 bg 作业号;
6.4 运行态态的程序展示