news 2026/4/30 12:35:55

Linux环境编程第四天笔记

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux环境编程第四天笔记

Linux环境编程第四天笔记

进程的语言

管道
  • 管道是一种特殊的文件

  • 管道是Linux中最基础的进程间通信机制,分为无名(匿名)管道和无名管道

  • 管道默认是半双工通信方式(数据只能在一个方向上流动)

  • 管道中的数据读取后会从管道中删除,不支持随机访问(使用lseek)。

  • 默认情况下,读端无数据时,读进程阻塞。写端管道满时,写进程阻塞。

  • 管道一旦创建成功,会返回两个文件描述符,读端对应fd[0],写端对应fd[1]。

无名管道(PIPE)
  1. 无名管道是临时文件,随进程的退出而销毁。

  2. 没有名字,无法使用open()

  3. 无名管道只能用于具有亲缘关系的进程间通信。

  4. 只能用于亲缘进程之间通信

  5. 半双工工作方式:读写端分开

  6. 写入操作不具有原子性,只能一对一通信

有名管道(FIFO)
  1. 有名管道的文件持久存在于文件系统中,需手动删除。

  2. 有名字,存储于普通文件系统中。(非临时,删除需手动删除)

  3. 任何具有相应权限的进程都可以使用open()来获取FIFO的文件描述符

  4. 和普通文件一样:使用统一的read()和write()来读写。

  5. 具有写入原子性,支持多写者同时写操作

pipe()

创建无名管道

返回值: 成功:返回 0,失败:返回 -1,并设置 errno

#include <unistd.h> ​ int pipe(int fd[2]);//fd[0]为读端,fd[1]为写端
mkfifo()

用于创建有名管道文件,只创建,需使用open打开

返回值:成功:返回0;失败:返回-:1;

#include <sys/types.h> #include <sys/stat.h> ​ int mkfifo(const char *pathname, mode_t mode);
  • pathname:FIFO的路径名

  • mode:权限模式(类似文件权限:r (读) = 4,w (写) = 2,x (执行) = 1,(无) = 0)

access()

用于检查当前进程对指定文件或目录的访问权限

返回值:成功:返回0;失败:返回:-1;

#include <unistd.h> ​ int access(const char *pathname, int mode);
mode的可选项说明
F_OK0检查文件是否存在
R_OK4检查是否有读权限
W_OK2检查是否有写权限
X_OK1检查是否有执行权限
信号

信号是一种特殊的IPC(进程间通信),大部分信号是异步的(进程无法预料什么时候收到信号,收到什么信号)。

信号共有62个,前31个(1~31)是从UNIX继承下来的,被称为非实时信号或不可靠信号;

后31个(34~64)是Linux新增的,被称为实时信号或可靠信号

非实时信号
  1. 非实时信号优先级相同,不排队,信号的响应会相互嵌套

  2. 每个信号都有对应的一个特定的系统事件

  3. 就绪队列中的非实时信号响应无固定顺序

  4. 就绪队列中的多个相同的非实时信号仅响应一次,其余会被丢弃

  5. 非实时信号中的 SIGKILL 和 SIGSTOP 这两个信号无法被忽略、无法被捕捉、无法被阻塞,只能按照缺省动作进行响应

实时信号
  1. 无具体对应的系统事件

  2. 实时信号优先级高于非实时信号,实时信号的值越大优先级越高

  3. 就绪队列中的事实信号按优先级从高到低依次响应

  4. 就绪队列中的多个相同的实时信号全部都会被响应,不会被丢弃

  5. 高优先级的信号会打断正在执行的低优先级信号

Linux 对信号的响应有三种方式:

  1. 执行缺省动作:比如SIGINT默认终止进程,SIGSEGV默认终止并生成 core 文件。

  2. 忽略信号:通过signal(SIGINT, SIG_IGN)注册,表示内核收到该信号后不做任何处理。

  3. 自定义响应:通过sa_handlersa_sigaction注册自定义函数,内核会在信号到达时调用该函数。

31个非实时信号
编号信号名称默认动作说明
1SIGHUP终止终端挂起或控制进程终止
2SIGINT终止键盘中断(Ctrl+C)
3SIGQUIT终止+核心转储键盘退出(Ctrl+\)
4SIGILL终止+核心转储非法指令
5SIGTRAP终止+核心转储调试断点
6SIGABRT终止+核心转储abort() 产生的信号
7SIGBUS终止+核心转储总线错误(内存访问错误)
8SIGFPE终止+核心转储浮点异常
9SIGKILL终止(不可捕获/忽略)强制终止信号
10SIGUSR1终止用户自定义信号1
11SIGSEGV终止+核心转储无效内存引用
12SIGUSR2终止用户自定义信号2
13SIGPIPE终止管道破裂(写入无读端的管道)
14SIGALRM终止定时器超时(alarm())
15SIGTERM终止优雅终止信号(kill默认)
16SIGSTKFLT终止协处理器栈错误(少用)
17SIGCHLD忽略子进程状态改变
18SIGCONT继续继续已停止的进程(不可忽略)
19SIGSTOP停止(不可捕获/忽略)暂停进程执行
20SIGTSTP停止终端停止信号(Ctrl+Z)
21SIGTTIN停止后台进程读终端
22SIGTTOU停止后台进程写终端
23SIGURG忽略套接字紧急数据
24SIGXCPU终止+核心转储超出CPU时间限制
25SIGXFSZ终止+核心转储超出文件大小限制
26SIGVTALRM终止虚拟定时器超时
27SIGPROF终止性能分析定时器超时
28SIGWINCH忽略窗口大小改变
29SIGIO终止I/O就绪(同SIGPOLL)
30SIGPWR终止电源失效
31SIGSYS终止+核心转储无效系统调用
31个实时信号
编号信号名称
34SIGRTMIN
35SIGRTMIN+1
......
63SIGRTMIN+29
64SIGRTMAX/SIGRTMIN+30
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/29 4:12:20

基于Thinkphp和Laravel的小区物业管理系统设计与实现

目录 小区物业管理系统设计与实现摘要技术架构功能模块系统特点实现效果 项目开发技术介绍PHP核心代码部分展示系统结论源码获取/同行可拿货,招校园代理 小区物业管理系统设计与实现摘要 该系统基于ThinkPHP和Laravel框架开发&#xff0c;旨在提升小区物业管理效率和服务质量。…

作者头像 李华
网站建设 2026/4/24 17:25:07

为什么你的测试总在“网络延迟”上失败?

网络延迟测试是软件性能测试的关键环节&#xff0c;尤其在云计算、物联网和实时应用场景中&#xff0c;它直接影响用户体验和系统可靠性。然而&#xff0c;许多测试团队反复遭遇延迟测试失败&#xff0c;导致误报、数据失真和项目延期。 一、硬件因素&#xff1a;设备老化与配…

作者头像 李华
网站建设 2026/4/27 7:41:56

计算机毕业设计springboot物品捎带平台的设计与实现 基于Spring Boot的物品代送服务平台开发与实现 Spring Boot框架下的物品托运系统设计与构建

计算机毕业设计springboot物品捎带平台的设计与实现_xrt3a &#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。 随着互联网的飞速发展&#xff0c;传统的物品捎带方式逐渐无法满足人…

作者头像 李华
网站建设 2026/4/29 11:36:02

服务器运维操作命令速查手册

服务器运维操作命令手册适用对象&#xff1a;Linux 服务器运维工程师 / 网络工程师 / IT 运维人员 适用环境&#xff1a;CentOS / Rocky / AlmaLinux / Ubuntu / Debian&#xff08;命令通用&#xff0c;个别差异已说明&#xff09;一、系统基础信息查看1. 系统与内核uname -a …

作者头像 李华
网站建设 2026/4/28 8:46:42

DeepSeek写的论文AI率太高?5分钟降到知网合格线以下

DeepSeek写的论文AI率太高&#xff1f;5分钟降到知网合格线以下 用DeepSeek写完论文&#xff0c;自信满满拿去检测&#xff0c;结果知网AIGC显示92%。 先说结论&#xff1a;用比话降AI&#xff08;www.bihuapass.com&#xff09;处理后&#xff0c;5分钟从92%降到了8%。如果你…

作者头像 李华
网站建设 2026/4/30 2:02:59

CI/CD中测试结果对比的价值与挑战

在快速迭代的开发环境中&#xff0c;新旧版本测试结果的精准对比不仅是质量守门员&#xff0c;更是效率加速器。传统手动对比方式在动态场景下面临时效性差、误判率高的问题&#xff0c;而自动化对比体系能通过量化指标&#xff08;如通过率、缺陷密度、性能衰减率&#xff09;…

作者头像 李华