news 2026/8/25 14:26:31

初识linux(day 06)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
初识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.so(win中叫动态链接库)
在使用库时,如果共享库和静态库同名,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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/25 14:26:20

林伽一 · AI科技周报 | 2026年08月第3周

开篇本周 AI 技术栈发生三条结构性变化:智谱 GLM-5.3 在漏洞挖掘基准 CyberGym 以 84.5% 超越美国前沿模型,并将公开权重,重塑安全攻防的能力基线;Stripe 以约 80 亿美元收购模型路由平台 OpenRouter,日均 10 万亿 tok…

作者头像 李华
网站建设 2026/8/25 14:21:32

RAG的工作流程与目标

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

作者头像 李华
网站建设 2026/8/25 14:12:15

面向具身智能的TVA-VLA域不变特征解耦新方案

前沿技术探索:TVA智能体(简称TVA)TVA智能体(亦称“AI智能体视觉”或“TVA视觉智能体”)是依托Transformer架构与“因式智能体”理论构建的系统级视觉技术框架。它融合深度强化学习(DRL)、卷积神…

作者头像 李华
网站建设 2026/8/25 14:10:00

通用进销存 vs 行业定制进销存选型报告

本文要点:本文从"通用型与行业定制型进销存系统的选型权衡"出发,以轻流与明道云为代表对比两类产品在业务适配度、迭代灵活性和长期成本方面的差异,并结合锻造、制造等行业的真实落地场景给出分场景选型建议,适合面临通…

作者头像 李华