Linux编程库

news2024/9/27 19:19:27

1、Linux编程库介绍:

编程库就是指始终可以被多个Linux软件项目重复使用的代码集。
使用编程库有两个主要的优点:

  • 可以简化编程,实现代码重复使用,进而减小应用程序的大小。
  • 可以直接使用比较稳定的代码。

Linux下的库文件分为共享库和静态库两大类,它们两者的差别仅在程序执行时所需的代码是在运行时动态加载的,还是在编译时静态加载的。此外,通常共享库以.so(Shared Object)结尾,静态链接库通常以.a结尾(Archive)。在终端下查看库的内容,通常共享库为绿色,而静态库为黑色。
Linux的库一般在/lib或/usr/lib目录下。它主要存放系统的链接库文件,没有该目录则系统无法正常运行。
常用的Linux编程库:
在这里插入图片描述

2、Linux系统调用:

系统调用说的是操作系统提供给用户程序调用的一组“特殊”接口。
使用系统主要目的是使得用户可以使用操作系统提供的有关设备管理、输入/输出系统、文件系统和进程控制、通信以及存储管理等方面的功能,而不必了解系统程序的内部结构和有关硬件细节,从而起到减轻用户负担和保护系统,以及提高资源利用率的作用。
Linux的运行空间分为用户空间和内核空间两种,二者运行在不同的级别中,所以用户进程在通常情况下不允许访问内核,也无法使用内核函数,只能在用户空间操作用户数据和用户空间函数。这样的操作在一定程度上保护了系统。使用系统调用可以让用户进程访问内核,其操作为进程先用适当的值填充寄存器,然后调用一个特殊的指令,这个指令会跳到一个事先定义在内核中的位置(这个位置是用户进程可读但是不可写的)。硬件知道一旦用户进程跳到这个位置,则认为该用户就不是在限制模式下运行的用户,而是作为操作系统的内核。当然,用户访问内核的路径是事先规定好的,只能从规定位置进入内核,而不允许任意跳入内核。
Linux系统有200多个系统调用,这些系统调用按照功能分类大致可分为以下几类:

  • 进程控制
  • 文件系统控制
  • 系统控制
  • 内存管理
  • 网络管理
  • socket控制
  • 用户管理
  • 进程间通信

3、Linux线程库:

进程是资源管理的最小单位,线程是程序执行的最小单位。一个进程至少需要一个线程作为它的指令执行体,进程管理着资源(比如CPU、内存、文件等),而将线程分配到某个CPU上执行。一个进程当然可以拥有多个线程。
Linux系统下的多线程遵循POSIX接口,称为pthread。LinuxThreads是一种面向Linux的POSIX 1003.1c-pthread标准接口。它所实现的就是基于核心轻量级进程的“一对一”线程模型,一个线程实体对应一个核心轻量级进程,而线程之间的管理在核外函数库中
实现。使用LinuxThreads线程库创建和管理线程常用到下面几个函数:

  • pthread_create()函数:创建新的线程。
  • pthread_join()函数:等待线程结束。
  • pthread_self()函数:获取线程ID。
  • pthread_detach()函数:用于让线程脱离。
  • pthread_exit()函数:终止线程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/889496.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

rabbitmq容器启动后修改连接密码

1、进入容器 docker exec -it rabbitmq bash 2、查看当前用户列表 rabbitmqctl list_users 3、修改密码 rabbitmqctl change_password [username] ‘[NewPassword]’ 4、修改后退出容器 ctrlpq 5、退出容器后即可生效,不需要重启容器

三分之一的英国大学生被欺诈

根据NatWest的一项新研究,去年英国大学三分之一的学生在网上遭遇欺诈。 今年5月,这家高街银行委托咨询公司RedBrick对来自63个城镇的3000多名英国大学生进行了调查。 尽管三分之一的受访者表示他们在过去的12个月里遇到过诈骗,但没有统计数…

动手学深度学习-pytorch版本(二):线性神经网络

参考引用 动手学深度学习 1. 线性神经网络 神经网络的整个训练过程,包括: 定义简单的神经网络架构、数据处理、指定损失函数和如何训练模型。经典统计学习技术中的线性回归和 softmax 回归可以视为线性神经网络 1.1 线性回归 回归 (regression) 是能为一个或多个…

【06 英语语法:时态、语态、虚拟语气】

时态、语态、虚拟语气 1. 时态和语态1.1 时态: 4个时间*4个状态 (时间:现在、过去、将来、过去将来;状态:一般、进行、完成、完成进行)⑴ 16 时态 详解表⑵ 主从句的 时态搭配⑶ 常用的 不规则动词变化 1.2 语态&#…

url下载地址含非法字符下载失败

示例下载链接:https://666666.shei.org.cn:2023/20230105/0ac280a3-498b-45d8-830c-a788475a8022/2023817-F2666666很六 (改).doc java.lang.IllegalArgumentException: Illegal character in path at index 96: https://666666.shei.org.c…

android resoure资源图片颜色值错乱

最近androidstudio开发,添加一些颜色值或者drawable资源文件时,运行app,颜色值或者图片对应不上,暂时找不到原因,望告知。 暂时解决方法:

IT 运营管理中的根本原因分析(RCA)

全球数字化的兴起造成了一种情况,即组织在很大程度上依赖于其IT基础架构,就像我们依赖神经系统一样。我们可以将其等同于神经系统,因为IT基础架构可以实现有效控制,协调所有功能,并确保高效,顺利地完成每项…

代码随想录算法训练营第60天|动态规划part17| 647. 回文子串、516.最长回文子序列、动态规划总结篇

代码随想录算法训练营第60天|动态规划part17| 647. 回文子串、516.最长回文子序列、动态规划总结篇 647. 回文子串 647. 回文子串 思路: 暴力解法 两层for循环,遍历区间起始位置和终止位置,然后还需要一层遍历判断…

vue2.0/vue3.0学习笔记——2022.08.16

vue2(查漏补缺) 一、vue基础 内置指令(查漏补缺) 1、v-text 更新元素的textContent 2、v-html 更新元素的innerHtml 3、v-cloak 防止闪现,与css配合: [v-cloak] {dispaly: none} 4、v-once 在初次动态渲染厚&#x…

1N4007S 整流二极管 1A 1000V A-405

前两天二极管生产厂家东沃电子科普过1N4007和1N4007G这两种普通塑封整流二极管,查看“STD-1N4001 Thru 1N4007 (DO-41) Datasheet”和“STD-1N4001G Thru 1N4007G (DO-41) Datasheet”产品手册可知,1N4007和1N4007G参数除了结电容和芯片尺寸不一样以外&a…

每日一练 | mongo集群如何创建分片键

文章目录 MongoDB是什么什么是分片键环境如何设置分片键 MongoDB是什么 MongoDB 是一个基于分布式文件存储的数据库 什么是分片键 分片:每个分片包含分片数据的一部分。每个分片可以部署为副本集。 而分片键的作用就是把数据按一定的条件分布到各个分片中&#…

Linux 修改信号的响应方式

修改信号的响应方式 1.signal()方法介绍: 修改信号的响应方式要用到方法signal()。需要引用头文件signal.h。signal()的原型: typedef重命名了一个函数指针的类型,这个指针的类型为指向一个参数为int返回值为void的函数的指针。这个函数指针…

学生学徒班适学人员介绍

什么是学生学徒制呢? 产业技能生态链企业与院校毕业年度学生,按照学生就业意愿,建立就业导向的学生学徒制关系,签订学徒培养协议,确定学生的就业岗位和培养计划(含岗位实习)。 泰迪-学生学…

Python中随机数的使用详解

目录标题 嗨喽~大家好呀,这里是魔王呐 ❤ ~!随机数功能1. choice(seq)2. randint(start, end)3. random()4. uniform(a, b)5. randrange(start, end, step)6. sample(seq, number)7. shuffle(lt)尾语 嗨喽~大家好呀,这里是魔王呐 ❤ ~! python资料、源码…

[JavaWeb]【二】Vue Ajax Elemnet Vue路由打包部署

目录 一 什么是Vue 1.1 Vue快速入门 1.2 常用指令 1.2.1 v-bind && v-model 1.2.2 v-on 1.2.3 v-if && v-show 1.2.4 v-for 1.2.5 案例 1.3 生命周期 二 Ajax 2.1 Ajax介绍 2.2 同步与异步 2.3 原生Ajax(繁琐,过时了&#xff09…

Windows安装 Elasticsearch 教程

下载地址 Past Releases of Elastic Stack Software | Elastic 解压 解压完的样子 进入BIN目录 D:\Develop\elasticsearch\elasticsearch-7.12.0\bin 按住shift 鼠标右键 打开 powershell 窗口 查看ES版本 .\elasticsearch.bat --version 出现问题了 警告:不赞成…

第十二课:QSsh 库编译及客户端开发

功能描述:QSsh 库编译以及如何运用 QSsh 做应用开发 一、最终演示效果 本次制作的 Demo 是通过输入主机的 IP 、端口号、用户名和密码,能够实现 SSH 自动连接,从而对远程设备进行操作。 主机(H):输入远程设备的 IP 端口(P)&…

分享twinmotion获得逼真效果的渲染技巧

正如所引用的那样,“渲染与软件无关。它关乎艺术家的眼睛、看到脑海中最终图像的能力,以及将这一愿景变为现实的技能。一些流行的渲染软件包括 V-Ray、Arnold、Unreal Engine、Blender 和 Octane Render。 其中之一是 TwinMotion,这是一款功…

自然语言处理技术:NLP句法解析树与可视化方法

自然语言处理(Natural Language Processing,NLP)句法解析树是一种表示自然语言句子结构的图形化方式。它帮助将句子中的每个词汇和短语按照语法规则连接起来,形成一个树状结构,以便更好地理解句子的语法结构和含义。句法解析树对于理解句子的句法关系、依存关系以及语义角…

自动驾驶卡车量产-第一章-用户需求

1、中国干线物流行业现状 万亿级市场,规模巨大。由中重卡承运的干线运输占到整体公路货运市场的82%,全国中重卡保有量约730 万台1,市场规模达4.6 万亿元1,体量全球第一,超过同城物流及乘用出租市场规模之和。同样&…