发布时间:2026/8/25 14:26:43
初识linux(day 06) 今天介绍的有以下五个内容1.printf 的缓冲区问题 2.静态库的创建和使用 3.共享库的创建和使用 4.静态库与共享库的区别 5.各种命令库等文件的标准存放位置一printf 的缓冲区问题printf ( )的输出原理将需要打印在屏幕上的东西先存入缓冲区之中在缓冲区满足以下三种情况时会将缓冲区中的内容全部打印在屏幕之上:1.缓冲区满了 2.强制刷新缓冲区 \n ,fflush(stdout) (fflush刷新文件 stdout屏幕输出文件) 3.程序要退出了 exit()第一步刷新缓冲区 第二步_exit()退出程序在后面才会介绍到的fork函数中printf的缓冲区问题会被再次提到他对于输出结果的影响非常大本质上printf()其中调用了write()printf()中的数据先存放在缓冲区中在缓冲区刷新后将缓冲区的数据放入调用的write中从而进行打印write()不存入缓冲区直接进行打印 相较于printf( )write( )缺少用户态缓冲,每次调用都会触发系统调用大量短小输出时上下文切换频繁性能差 而printf( )自带用户态缓冲区在多次零散输出时会合并成少量系统调用 减少用户态→内核态上下文切换高频少量 IO 场景使性能更高二静态库的创建和使用**库**已经编译好的函数的集合静态库libxx.a 使用时会将库中函数的实现拷贝到文件中静态库的创建ar crv -o libxx.a xx1.o xx2.o ……xx1.o xx2.o …… 待打包的目标文件先由 gcc -c xxx.c 编译生成静态库的使用gcc -o main main.c -L路径 -l库名(如果生成的库放在了标准库中可以省略路径)三共享库的创建和使用共享库libxx.sowin中叫动态链接库在使用库时如果共享库和静态库同名Linux系统会默认使用共享库ldd命令:ldd程序名 查看程序所使用到的共享库共享库的创建gcc -shared -fPIC -o libxx.so xx1.o xx2.o ……xx1.o xx2.o …… 待打包的目标文件先由 gcc -c xxx.c 编译生成共享库的使用gcc -o main main.c -L路径 -l库名使用时默认在在/usr/lib 或/lib下查找 可省去地址当共享库不在标准位置时使用命令LD_LIBRARY_PATH. (将当前位置赋给变量共享库的储存路径)export LD_LIBRARY_PATH (将变量设置为环境变量)gcc -o main main.c -L路径 -l库名四静态库与共享库的区别静态库使用静态库会把库函数拷贝到可执行程序中但只拷贝用到方法函数共享库共享库只做标记不进行拷贝在运行程序时还需要链接共享库装载到内存中多个程序可共享使用 并不包含到可执行程序中共享库更利于程序的升级五各种命令库等文件的标准存放位置头文件的标准位置/usr/include存放二进制可执行程序命令的标准位置/usr/bin/bin存放库文件的标准位置/usr/lib/lib…

相关新闻

2026/8/25 14:26:43

dede php做网站?别被忽悠了!网页和网站差个十万八千里

对很多人而言, 对于网页究竟是什么, 一下子就处于那种完全摸不着头脑好似丈二和尚一般的状态。那网页到底是什么? 是效果图? 是代码? 是编程? 我表示 , 网页其实是它们融合而成的综合体 , 它里面的任何单独一项 , 都没办法称其为完整的情况。要是想要学会网页相关知识 , 那…

2026/8/25 14:26:43

2026-08-24:检查相邻数字差。用go语言,给定一个纯数字字符串,你需要检查其中任意两个紧挨着的数字,它们数值上的差距是否都不会超过 2。 如果整串数字中所有相邻位置都满足这个条件,就返回“是”

2026-08-24:检查相邻数字差。用go语言,给定一个纯数字字符串,你需要检查其中任意两个紧挨着的数字,它们数值上的差距是否都不会超过 2。 如果整串数字中所有相邻位置都满足这个条件,就返回“是”(true&…

2026/8/25 14:21:42

RAG的工作流程与目标

目录 RAG的工作流程: 知识库的构建: 调用: RAG的目标:如何提高Query和知识库的匹配度 如何优化Query: 如何优化知识库: 扩展:Embedding模型 RAG的工作流程: 上一节…

2026/8/25 16:37:13

【非标自动化】3、AutoShop快速理解(软件介绍)

AutoShop是汇川面向小型PLC(Programmable Logic Controller,可编程逻辑控制 器)产品的编程组态软件,具有友好的编程和调试环境,拥有丰富、强大的通信和控 制功能。支持梯形图(LD)、顺序功能图&a…

2026/8/25 16:37:13

Kotlin 语言【知识点整理2】

目录 一、基本概念 1.包的定义与导入 2.程序入口点 2.1 输入 3.变量 二、基本类型 1.数字 1.1 整数类型 1.2 浮点类型 1.3 数字字面常量 1.4 装箱与缓存 1.4.1 JVM是怎么存储数字的? 1.4.2 使用可空类型的时候会触发装箱操作: 1.4.3 JVM 对…

2026/8/25 16:37:13

基于QtPy (PySide6) 的PLC-HMI工程实战记录(二)复制和应用PLC模板

一、复制前面做好的PLC项目模板,另存为新的项目并打开1、按照PLC的实际硬件进行完整组态2、编写变量表二、根据变量表,确定需要发送给上位机的数据范围本项目是一个小系统,为了简化设计,PLC的上行数据使用了固定周期发送&#xff…

2026/8/25 16:32:13

一台新服务器上线 Java 服务,我会检查这 20 项

一台新服务器上线 Java 服务,我会检查这 20 项JDK装好了,JAR也能启动。 这台服务器就可以上生产了吗?不一定。 很多线上事故和业务代码没有关系: 服务用root运行 服务器重启后应用没有自动启动 时区错误导致定时任务提前执行 文件…

2026/8/25 1:04:19

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/25 11:48:27

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/24 8:17:29

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/25 0:04:14

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory Meta Description:GetQzonehistory 是一个QQ空间历史说…

2026/8/25 0:04:14

洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表

【题目来源】 https://www.luogu.com.cn/problem/P7912 【题目描述】 小熊的水果店里摆放着一排 n 个水果。每个水果只可能是苹果或桔子,从左到右依次用正整数 1,2,…,n 编号。连续排在一起的同一种水果称为一个“块”。小熊要把这一排水果挑到若干个果篮里&#x…

2026/8/24 13:42:17

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/24 18:13:48

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/25 1:08:14

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…