DAY4 IO进程线程,库(静态库、动态库)的创建及使用,以及进程的相关指令的使用

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 运行态态的程序展示

 

7.进程的创建过程;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值