Linux-知识点1-$-POSIX等

POSIX 的定义与作用

POSIX(Portable Operating System Interface)是由 IEEE 制定的操作系统接口标准,旨在为不同 UNIX 系统提供统一的 API 规范。它定义了文件操作、进程控制、线程管理、信号处理等核心功能的接口行为,确保应用程序在不同兼容系统上可移植。

POSIX 与进程间通信(IPC)

POSIX 标准包含多种进程间通信机制,如:

  • 消息队列 (mq_* 系列函数)
  • 共享内存 (shm_* 系列函数)
  • 信号量 (sem_* 系列函数)
    这些接口提供跨平台的 IPC 实现方式,避免依赖特定系统的私有 API。

$ 符号的作用

在 Bash 中,$ 主要用于变量引用和命令替换:

  • 变量引用 :$var 或 ${var} 获取变量值。
  • 命令替换 :$(command) 或 command 执行命令并替换为输出结果。

将逻辑翻译为 Bash 命令

链接库(-lxxx)的位置规则

在 GCC 或 Clang 编译命令中,-lxxx 必须放在目标文件(.o)之后,因为链接器按顺序解析依赖:

bash 复制代码
gcc main.o -lxxx -o program  # 正确  
gcc -lxxx main.o -o program  # 可能报未定义符号错误  

链接器从左到右处理文件,若库在前,其符号未被后续目标文件引用则可能被丢弃。

关键注意事项

  • POSIX 标准通过头文件(如 <unistd.h>)和库函数提供,需在代码中包含对应头文件。
  • Bash 脚本中变量赋值无需 $,引用时才需要:var=value vs echo $var。
  • 动态库链接时可通过 LD_LIBRARY_PATH 指定路径,但编译时仍需正确排列 -l 参数。
相关推荐
Linux界最忧郁之人1 小时前
华为云ECS&IMS&AS实战|弹性云服务器、私有镜像、弹性伸缩完整实验
linux·运维·服务器·centos·华为云·openstack
whyutianict_vv2 小时前
零基础转 AI 运维:投入清单、技术路线与核对表
linux·运维·人工智能·ai
无言听风雨丶2 小时前
systemd 与信号 / 僵尸进程:Linux 进程管理的底层逻辑与排错
linux·服务器·网络
DevOpenClub2 小时前
高考一分一段 API:分数查位次、科类枚举与历史对照
linux·数据库·高考
小贾要学习2 小时前
【C++后端开发项目】Reactor 模型 / C++ 仿写 muduo HTTP 服务器:让底层网络库真正跑起网页
linux·服务器·c++·http·网络编程·muduo·reactor模型
Blockbuater_drug2 小时前
OpenMM分子动力学模拟02 安装:Linux:conda 一条命令装通 GPU 加速的分子模拟环境
linux·conda·cuda·gpu驱动·pythonpath·openmm安装
程序员JerrySUN2 小时前
PCIe Gen5 SSD 为什么读得快、写得慢?从存储原理到 Linux 性能实测
linux·服务器·网络
Android系统攻城狮3 小时前
Linux FFmpeg深度解析之avcodec_parameters_copy调用流程与实战(二十五)
linux·运维·服务器·ffmpeg·音视频·车载音频
A7bert7773 小时前
【MobileSAM部署至RK3588】环境适配→转换RKNN→开发板部署
c++·人工智能·深度学习·目标检测·ubuntu
ITKEY_3 小时前
emacs 文件管理Dired, the Directory Editor
linux·编辑器·emacs