当前位置: 首页 > news >正文

通州手机网站建设北京网站设计实力乐云践新

通州手机网站建设,北京网站设计实力乐云践新,企业网站设计需求文档,j2ee做网站1、库文件 库文件 库是一组预先编译好的方法的集合; Linux系统储存的位置一般在/lib和/usr/lib中 库的头文件放在/usr/include 库分类:静态库(libxxx.a)共享库(libxxx.so) 静态库 (1&#…

1、库文件

        库文件

库是一组预先编译好的方法的集合;

Linux系统储存的位置一般在/lib和/usr/lib中

库的头文件放在/usr/include

        库分类:静态库(libxxx.a)共享库(libxxx.so)

静态库

(1)静态库的生成和使用

先把需要生成库文件的所有.c文件编译成.o文件;(目标文件)

创建静态库(使用ar命令)

ar crv libxxx.a xxxx.o xxx.o

c:创建库     r:讲方法添加到库中     v:显示过程

静态库的使用:

gcc -o main main.c -L. -lxxx

-L:指定库的储存位置

-l:指定库的名称(不需要前面的lib和扩展名.a)

静态库的缺点:

当运行多个应用程序 并且它们都使用来自同一个函数库的函数时,内存中就会有同一函数的多个副本。而且在程序文件自身中也有多份同样的副本,这将消耗掉大量的宝贵内存和磁盘空间;

共享库

(1)将所有的.c文件编译成目标文件.o

(2)将所有目标文件打包生成共享库:gcc -shared -fPIC -o libxxx.so xxx.o xxx.o

(3)共享库的使用:gcc -o main main.c -L路径 -l库名

共享库执行的时候会出错,找不到对应的共享文件:比如libfoo.so;

注意的事 共享库必须要放到标准路径下:

sudo  mv  libxxx.so  /usr/lib

补充一个命令:查看使用了哪些共享库:ldd main

静态库和共享库的区别

共享库 如其名 磁盘上只需要有一份共享的库文件,运行的时候在内存中只加载这一份库文件即可

而静态库,如果每一个应用程序都需要这个库文件,那么每一个应用程序都需要有自己的库文件,独立存放在磁盘上,从而占用了磁盘空间,而且运行的时候 这些库文件都需要加载一遍

共享库更加便于升级

静态库的好处是在目标机器上运行程序的时候,就不会再依赖这个机器的空间,因为已经将方法都包含进来了;而共享库就是只有一份共享,比较节省空间,坏处就是运行的时候,这个主机上必须有这个库文件,没有程序就会运行失败;

进程

(1)进程:一个正在运行中的程序

(2)PCB:进程控制块,进程描述符(PID:进程唯一的标识符)

进程控制块是用一个结构体struct task_struct来实现;

(3)进程的状态

就绪状态  阻塞状态  运行状态

时间片轮转调度;

时间片轮转调度是一种古老的,最简单,最公平使用最广的算法。每个进程被分配一个时间段,称作它的时间片,也就是该进程允许运行的时间。如果在时间片结束时进程还在运行,则CPU将会剥夺并分配给另一个进程。如果进程在时间片结束前阻塞或者结束,CPU当即进行切换。调度程序索要做的就是维护一张就绪进程列表,当进程用完他的时间片后,会被移到队列的末尾。

(4)并行和并发

主函数的三个参数

(1)主函数的三个参数

argc:主函数的参数个数

argv:主函数的参数内容

envp:环境变量

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main(int argc,char *argv[],char *envp[])
{  int i=0;printf("argc=%d\n",argc);// for(;i<argc;i++)for(;argv[i]!=NULL;i++){printf("argv[%d]=%s\n",i,argv[i]);}return 0;
}
gcc -o main main.c 
./main
./main hello 123
#观察运行结果思考argc和argv参数的含义;
 for(i=0;envp[i]!=NULL;i++){printf("envp[%d]=%s\n",i,envp[i]);}

(2)总结

argc:参数的个数

argv:参数的列表,字符指针数组,给主函数传递的参数都是字符串(以NULL结尾)

envp:继承的环境变量列表,以NULL结尾


http://www.dtcms.com/a/418459.html

相关文章:

  • 高速PCB板DDR5数据信号的长STUB要背钻吗?
  • FPGA强化-简易频率计
  • VBScript自动化打印:智能过滤Word文档
  • 解码数据结构内核链表
  • 郑州设计网站公司东莞建设银行电话号码
  • 个人网站的建设目标绥德网站建设
  • Elasticsearch面试精讲 Day 23:安全认证与权限控制
  • 学习嵌入式的第四十三天——ARM——I2C
  • 玳瑁的嵌入式日记---0928(ARM--UART)
  • CentOS 8 部署 Zabbix 7.0 LTS 完整流程(PostgreSQL)及不同系统agent安装
  • 网站开发环境设计怎么在百度做网站推广
  • Langchain+Neo4j+Agent 的结合案例-电商销售
  • 计算机网络【第二章-物理层】
  • 计算机网络【第一章-计算机网络体系结构】
  • mac 安装npm之后,其他终端无法访问
  • 购物网站哪个最好记账公司如何拉客户
  • 汽车网络安全 CyberSecurity ISO/SAE 21434 测试之四
  • ARM芯片架构之APB,ATB总线
  • 死信队列(Dead-Letter Queue,DLQ)
  • Python 2025:网络安全与智能防御新范式
  • 2025软考甄选范文“论分布式事务及其解决方案”,软考高级,系统架构设计师论文
  • 学习前端开发的网站占酷设计网站官网入口
  • 【R语言验证统计量的渐进分布】
  • starrocks查询伪代码
  • R语言中的S3 泛型与方法
  • 安全运维实战指南:常见病毒防护操作手册
  • 爬虫逆向——RPC技术
  • tldr的安装与使用
  • Imatest-Star模块(西门子星图)
  • Unity 3D笔记——《B站阿发你好》