网站网络推广能优化南宁网站公司

张小明 2026/1/19 20:38:19
网站网络推广能优化,南宁网站公司, align center ,腾讯云服务器优惠IPC#xff08;进程间通信#xff09;完整笔记一、IPC三大类别1. 传统/古老通信方式无名管道#xff08;pipe#xff09;#xff1a;亲缘关系进程间通信有名管道#xff08;FIFO#xff09;#xff1a;任意进程间通信信号#xff08;signal#xff09;#xff1a;异…IPC进程间通信完整笔记一、IPC三大类别1. 传统/古老通信方式无名管道pipe亲缘关系进程间通信有名管道FIFO任意进程间通信信号signal异步通信方式2. IPC对象通信System V IPC消息队列相对少用共享内存最高效的通信方式信号量集用于进程同步3. Socket通信主要用于网络通信也可用于本地进程通信二、管道通信详解2.1 管道共同特性半双工同一时刻只能单向传输特殊文件不支持定位操作lseek/fseek使用文件IO操作open/read/write/close阻塞特性读端存在写超过64K会阻塞写端存在读空管道会阻塞读端关闭写端会收到SIGPIPE信号写端关闭读端返回0EOF2.2 无名管道pipe创建和使用流程#include unistd.h int pipe(int pipefd[2]); // pipefd[0]:读端, pipefd[1]:写端典型使用模式int fd[2]; pipe(fd); pid_t pid fork(); if (pid 0) { // 父进程 close(fd[0]); // 关闭读端 write(fd[1], data, size); close(fd[1]); } else if (pid 0) { // 子进程 close(fd[1]); // 关闭写端 read(fd[0], buffer, size); close(fd[0]); }关键结论验证存储方式队列结构先进先出FIFO容量限制实际64KBLinux默认同步机制读写端必须同时存在方向固定不能互换读写端2.3 有名管道FIFO创建和使用流程创建管道#include sys/types.h #include sys/stat.h int mkfifo(const char *pathname, mode_t mode); // 例如mkfifo(/tmp/myfifo, 0666);打开管道注意打开方式int fd_read open(fifo_name, O_RDONLY); // 只读方式 int fd_write open(fifo_name, O_WRONLY); // 只写方式 // 不能使用 O_RDWR 或 O_CREAT读写操作// 读端 read(fd_read, buffer, size); // 写端 write(fd_write, data, size);关闭和删除close(fd); unlink(/tmp/myfifo); // 删除管道文件封装函数示例int fifo_read(char *fifoname, void *s, int size) { int fd open(fifoname, O_RDONLY); if (fd 0) return -1; int ret read(fd, s, size); close(fd); return ret; } int fifo_write(char *fifoname, void *s, int size) { int fd open(fifoname, O_WRONLY); if (fd 0) return -1; int ret write(fd, s, size); close(fd); return ret; }重要特性文件系统可见可通过ls查看任意进程访问非亲缘关系进程可通信阻塞特性一端未打开时另一端会在open时阻塞手工操作bash复制 下载# 读管道 cat /tmp/myfifo # 写管道 echo data /tmp/myfifo三、信号通信Signal3.1 信号特点异步通信唯一异步的传统IPC方式中断机制类似硬件中断信号编号1~64其中1~32常用3.2 信号响应方式类型说明不可处理信号Term终止进程SIGKILL(9)Ign忽略信号SIGSTOP(19)Core终止并生成core文件Stop暂停进程Cont继续进程3.3 发送信号kill函数#include sys/types.h #include signal.h int kill(pid_t pid, int sig); // 成功返回0失败返回-1其他发送函数int raise(int sig); // 向自身发信号相当于kill(getpid(), sig) unsigned int alarm(unsigned int seconds); // 定时发送SIGALRM int pause(void); // 暂停进程等待信号3.4 接收和处理信号信号注册函数// 原形 void (*signal(int signum, void (*handler)(int)))(int); // 简化版使用typedef typedef void (*sighandler_t)(int); sighandler_t signal(int signum, sighandler_t handler);三种处理方式// 1. 默认处理 signal(SIGINT, SIG_DFL); // 2. 忽略处理 signal(SIGINT, SIG_IGN); // 3. 自定义处理 void my_handler(int sig) { printf(Received signal: %d\n, sig); } signal(SIGINT, my_handler);3.5 重要结论不可屏蔽信号SIGKILL(9)强制终止不能忽略/自定义SIGSTOP(19)强制暂停不能忽略/自定义用户自定义信号SIGUSR1(10)用户自定义信号1SIGUSR2(12)用户自定义信号2信号列表部分常用SIGHUP(1) 终端挂起 SIGINT(2) 中断CtrlC SIGQUIT(3) 退出Ctrl\ SIGILL(4) 非法指令 SIGTRAP(5) 跟踪陷阱 SIGABRT(6) 异常终止 SIGBUS(7) 总线错误 SIGFPE(8) 算术异常 SIGKILL(9) 强制终止 SIGUSR1(10) 用户信号1 SIGSEGV(11) 段错误 SIGUSR2(12) 用户信号2 SIGPIPE(13) 管道破裂 SIGALRM(14) 闹钟信号 SIGTERM(15) 终止信号 SIGCHLD(17) 子进程状态改变 SIGCONT(18) 继续执行 SIGSTOP(19) 暂停进程 SIGTSTP(20) 终端暂停CtrlZ四、练习题和实验要点4.1 无名管道实验验证读写端父子进程是否都有fd[0]/fd[1]测试存储结构验证FIFO特性容量测试测试管道最大容量同步验证测试读写阻塞情况双向通信使用两个管道实现双向通信4.2 有名管道实验进程通信A程序发送B程序接收退出机制收到quit双方退出管理工具实现fifo_tool创建/删除管道封装函数实现fifo_read/fifo_write4.3 信号实验自定义kill程序模拟系统kill命令信号响应测试测试所有32个信号响应自定义处理实现信号自定义处理函数五、实用技巧和注意事项5.1 管道使用技巧双向通信使用两个管道一个读一个写进程同步利用管道的阻塞特性错误处理检查read/write返回值资源清理及时关闭管道文件描述符5.2 信号使用技巧信号重入信号处理函数应为可重入函数信号屏蔽使用sigprocmask屏蔽不需要的信号信号队列实时信号可排队标准信号可能丢失竞态条件注意信号处理时的竞态问题5.3 调试技巧管道调试strace -e traceread,write,pipe,close ./program信号调试strace -e tracesignal,kill ./program查看进程信号ps -eo pid,cmd | grep program kill -l # 查看信号列表
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

企业网站建设合同书云服务器多少钱一台

💡实话实说:CSDN上做毕设辅导的都是专业技术服务,大家都要生活,这个很正常。我和其他人不同的是,我有自己的项目库存,不需要找别人拿货再加价,所以能给到超低价格。摘要 随着高校科研活动的日益…

张小明 2025/12/31 13:19:39 网站建设

企业建设网站的步骤是什么做围棋题最好的网站

Hermes-4 14B:混合推理与低拒绝率重构企业级AI应用范式 【免费下载链接】Hermes-4-14B 项目地址: https://ai.gitcode.com/hf_mirrors/NousResearch/Hermes-4-14B 导语:当AI学会"按需思考"——开源大模型的企业级突破 企业在部署AI助…

张小明 2025/12/25 9:14:44 网站建设

网站建设宣传册内容襄阳作风建设年活动网站

HexEdit:掌握二进制文件编辑的终极技巧指南 【免费下载链接】HexEdit Catch22 HexEdit 项目地址: https://gitcode.com/gh_mirrors/he/HexEdit 当你面对一堆难以理解的十六进制数据时,是否感到无从下手?HexEdit作为专业的二进制编辑器…

张小明 2026/1/2 0:29:42 网站建设

房地产建设项目网站动态ip代理

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 构建一个wps无法加载此加载项程序mathpage.wll应用,重点展示快速开发流程和效率优势。点击项目生成按钮,等待项目生成完整后预览效果 最近在开发一个WPS插件…

张小明 2025/12/25 9:14:45 网站建设

网站建设竞标需要怎么做响应式网站微博视频教程

Hello-Agents智能体知识复用实战指南:如何实现跨任务高效迁移 【免费下载链接】hello-agents 📚 《从零开始构建智能体》——从零开始的智能体原理与实践教程 项目地址: https://gitcode.com/datawhalechina/hello-agents 在当今快速变化的技术环…

张小明 2026/1/1 20:40:49 网站建设

平面设计网站大全网站模板免费下载

一、背景意义 随着计算机视觉技术的迅猛发展,物体检测与识别的应用场景日益广泛,涵盖了安防监控、自动驾驶、智能家居等多个领域。在这些应用中,扑克牌的点数识别作为一种特定的视觉识别任务,具有重要的实用价值。扑克牌不仅是休闲…

张小明 2026/1/7 9:00:38 网站建设