Linux环境编程第四天笔记
Linux环境编程第四天笔记进程的语言管道管道是一种特殊的文件管道是Linux中最基础的进程间通信机制分为无名匿名管道和无名管道管道默认是半双工通信方式数据只能在一个方向上流动管道中的数据读取后会从管道中删除不支持随机访问使用lseek。默认情况下读端无数据时读进程阻塞。写端管道满时写进程阻塞。管道一旦创建成功会返回两个文件描述符读端对应fd[0]写端对应fd[1]。无名管道PIPE无名管道是临时文件随进程的退出而销毁。没有名字无法使用open()无名管道只能用于具有亲缘关系的进程间通信。只能用于亲缘进程之间通信半双工工作方式读写端分开写入操作不具有原子性只能一对一通信有名管道FIFO有名管道的文件持久存在于文件系统中需手动删除。有名字存储于普通文件系统中。非临时删除需手动删除任何具有相应权限的进程都可以使用open()来获取FIFO的文件描述符和普通文件一样使用统一的read()和write()来读写。具有写入原子性支持多写者同时写操作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);pathnameFIFO的路径名mode权限模式类似文件权限r (读) 4w (写) 2x (执行) 1(无) 0access()用于检查当前进程对指定文件或目录的访问权限返回值成功返回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新增的被称为实时信号或可靠信号非实时信号非实时信号优先级相同不排队信号的响应会相互嵌套每个信号都有对应的一个特定的系统事件就绪队列中的非实时信号响应无固定顺序就绪队列中的多个相同的非实时信号仅响应一次其余会被丢弃非实时信号中的 SIGKILL 和 SIGSTOP 这两个信号无法被忽略、无法被捕捉、无法被阻塞只能按照缺省动作进行响应实时信号无具体对应的系统事件实时信号优先级高于非实时信号实时信号的值越大优先级越高就绪队列中的事实信号按优先级从高到低依次响应就绪队列中的多个相同的实时信号全部都会被响应不会被丢弃高优先级的信号会打断正在执行的低优先级信号Linux 对信号的响应有三种方式执行缺省动作比如SIGINT默认终止进程SIGSEGV默认终止并生成 core 文件。忽略信号通过signal(SIGINT, SIG_IGN)注册表示内核收到该信号后不做任何处理。自定义响应通过sa_handler或sa_sigaction注册自定义函数内核会在信号到达时调用该函数。31个非实时信号编号信号名称默认动作说明1SIGHUP终止终端挂起或控制进程终止2SIGINT终止键盘中断CtrlC3SIGQUIT终止核心转储键盘退出Ctrl\4SIGILL终止核心转储非法指令5SIGTRAP终止核心转储调试断点6SIGABRT终止核心转储abort() 产生的信号7SIGBUS终止核心转储总线错误内存访问错误8SIGFPE终止核心转储浮点异常9SIGKILL终止不可捕获/忽略强制终止信号10SIGUSR1终止用户自定义信号111SIGSEGV终止核心转储无效内存引用12SIGUSR2终止用户自定义信号213SIGPIPE终止管道破裂写入无读端的管道14SIGALRM终止定时器超时alarm()15SIGTERM终止优雅终止信号kill默认16SIGSTKFLT终止协处理器栈错误少用17SIGCHLD忽略子进程状态改变18SIGCONT继续继续已停止的进程不可忽略19SIGSTOP停止不可捕获/忽略暂停进程执行20SIGTSTP停止终端停止信号CtrlZ21SIGTTIN停止后台进程读终端22SIGTTOU停止后台进程写终端23SIGURG忽略套接字紧急数据24SIGXCPU终止核心转储超出CPU时间限制25SIGXFSZ终止核心转储超出文件大小限制26SIGVTALRM终止虚拟定时器超时27SIGPROF终止性能分析定时器超时28SIGWINCH忽略窗口大小改变29SIGIO终止I/O就绪同SIGPOLL30SIGPWR终止电源失效31SIGSYS终止核心转储无效系统调用31个实时信号编号信号名称34SIGRTMIN35SIGRTMIN1......63SIGRTMIN2964SIGRTMAX/SIGRTMIN30

相关新闻

基于Thinkphp和Laravel的幼儿园管理系统的 设计与实现_5umt6

基于Thinkphp和Laravel的幼儿园管理系统的 设计与实现_5umt6

目录 系统概述技术架构功能模块创新点实现效果 项目开发技术介绍PHP核心代码部分展示系统结论源码获取/同行可拿货,招校园代理 系统概述 ThinkPHP与Laravel结合的幼儿园管理系统旨在通过双框架优势实现高效管理。系统涵盖幼儿信息管理、教职工管理、课程安排、家校互动等功能模…

2026/7/8 8:50:13 阅读更多 →
基于Thinkphp和Laravel的个性化商城图书购物推荐系统_1k4p4_

基于Thinkphp和Laravel的个性化商城图书购物推荐系统_1k4p4_

目录系统架构与技术栈个性化推荐功能性能优化方案安全与扩展性部署与维护项目开发技术介绍PHP核心代码部分展示系统结论源码获取/同行可拿货,招校园代理系统架构与技术栈 该系统基于ThinkPHP和Laravel双框架开发,结合MySQL数据库,实现高并发与模块化设计…

2026/7/8 23:13:59 阅读更多 →
ue 微笑 audio2emotion 学习配置

ue 微笑 audio2emotion 学习配置

目录 自己制作微笑表情: 直接拉表情曲线 —— 适合你现在这种 AnimBP 流程 😀 标准微笑需要这几块: 🎯 在 AnimBP 里做: mh_arkit_mapping_pose_a2f 接的modify curve curve_map 中添加了值: MouthSmile_L = 0.7 MouthSmile_R = 0.7 CheekRaise_L = 0.4 CheekRa…

2026/7/7 10:03:12 阅读更多 →

最新新闻

为什么选择Mermaid Live Editor:开发者必备的3大理由与实时图表编辑革命

为什么选择Mermaid Live Editor:开发者必备的3大理由与实时图表编辑革命

为什么选择Mermaid Live Editor:开发者必备的3大理由与实时图表编辑革命 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/me…

2026/7/10 0:27:30 阅读更多 →
TC78H651AFNG与PIC18LF4553的直流有刷电机驱动方案

TC78H651AFNG与PIC18LF4553的直流有刷电机驱动方案

1. 项目背景与核心器件选型在工业自动化和消费电子领域,直流有刷电机因其结构简单、控制方便、成本低廉等优势,仍然是许多应用场景的首选驱动方案。TC78H651AFNG与PIC18LF4553的组合,恰好满足了现代有刷电机驱动系统对高性能、低功耗和智能控…

2026/7/10 0:27:30 阅读更多 →
Pandas 2.2 数据处理实战:5种合并操作性能对比与内存优化

Pandas 2.2 数据处理实战:5种合并操作性能对比与内存优化

Pandas 2.2 数据处理实战:5种合并操作性能对比与内存优化当数据规模突破百万行时,一个简单的合并操作可能让Jupyter笔记本卡死数分钟——这是许多数据分析师遭遇过的真实困境。Pandas作为Python生态中最强大的数据处理工具,其合并操作的性能差…

2026/7/10 0:23:28 阅读更多 →
Mfkey32v2:Mifare Classic 扇区密钥计算实用指南

Mfkey32v2:Mifare Classic 扇区密钥计算实用指南

Mfkey32v2:Mifare Classic 扇区密钥计算实用指南 【免费下载链接】mfkey32v2 Mifare Classic Key Calculator v2 项目地址: https://gitcode.com/gh_mirrors/mf/mfkey32v2 Mfkey32v2 是一款专门用于从读卡器获取的加密随机数中计算 Mifare Classic 扇区密钥的…

2026/7/10 0:23:28 阅读更多 →
3步掌握OpCore Simplify:黑苹果配置从复杂到简单的革命

3步掌握OpCore Simplify:黑苹果配置从复杂到简单的革命

3步掌握OpCore Simplify:黑苹果配置从复杂到简单的革命 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify OpCore Simplify是一款专为黑苹果&…

2026/7/10 0:21:27 阅读更多 →
蓝牙5.4低功耗音频系统设计与优化实践

蓝牙5.4低功耗音频系统设计与优化实践

1. 项目背景与核心组件选型在无线音频传输领域,蓝牙5.4标准的推出标志着低功耗音频(LE Audio)技术进入成熟阶段。本次项目采用IDC777-1蓝牙模块与PIC18F66K40微控制器的组合方案,旨在构建一个高保真、低延迟的无线音频传输系统。这套方案特别适合需要兼顾…

2026/7/10 0:17:25 阅读更多 →

日新闻

STM32与LTC1864高精度ADC的SPI通信实现

STM32与LTC1864高精度ADC的SPI通信实现

1. 项目背景与核心需求在工业控制和嵌入式系统开发中,模拟信号与数字系统的无缝集成一直是工程师面临的关键挑战。LTC1864作为一款16位高精度ADC转换器,配合STM32F101ZG这类主流微控制器,能够构建高性能的模拟信号采集系统。这种组合特别适合…

2026/7/10 0:03:07 阅读更多 →
猫抓插件:浏览器资源嗅探与视频下载的终极解决方案

猫抓插件:浏览器资源嗅探与视频下载的终极解决方案

猫抓插件:浏览器资源嗅探与视频下载的终极解决方案 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 还在为网页视频无法下载而烦恼吗&am…

2026/7/10 0:05:09 阅读更多 →
直流有刷电机驱动方案:TC78H653FTG与MKV46F256VLH16应用

直流有刷电机驱动方案:TC78H653FTG与MKV46F256VLH16应用

1. 直流有刷电机驱动方案概述在工业自动化和消费电子领域,直流有刷电机因其结构简单、控制方便、成本低廉等优势,仍然是许多应用场景的首选驱动方案。TC78H653FTG作为东芝推出的新一代H桥驱动器,与MKV46F256VLH16微控制器配合使用&#xff0c…

2026/7/10 0:05:09 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/8 16:14:06 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/9 13:46:46 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/9 21:41:05 阅读更多 →

月新闻