APUE笔记 进程间通信

管道

#include <unistd.h>

int pipe(int fds[2]);

fd返回两个文件描述符,fd[0]读,fd[1]写!

管道是单双工的,只能一端写,另一端读,不能两边同时读写

管道实际上是在,内核中开辟了一个循环队列,

当队列写满(队空)时,继续写(读)管道会阻塞当前进程!

当写端关闭,继续读时返回EOF

当读端关闭,继续写时候发送SIGPIPE信号,默认关闭进程


可能多个进程往管道写,若指定写的字节数< 管道空间大小PIP_BUF,则写数据不会交叉(独占写,写是院子操作)

                                            若指定写的字节数> 管道空间大小PIP_BUF,则写数据可能会交叉(写满管道,阻塞,管道有空间,大家一起竞争写?)                                           


pipe创建的管道只能用于有亲缘关系的进程间通信,父进程创建管道,fork子进程继承文件描述符,则可以父进程用fd[0]读,子进程从fd[0]写!

为确保,读写单向,读端应该关闭写fd[1],写端关闭读fd[0]



popen& pclose

 #include <stiod.h>

FILE *popen(const char *cmdstr, const char *type);

int pclose(FILE *fp);

open 开一个管道,然后调用fork,使用exec执行cmdstr 命令

返回一个标准I/O流,type 为“r”返回标准读,“w”返回标准写即fd绑定为fd[1]

注意,因为管道作为标准输入/出,所以默认使用全缓冲,可能造成读不到,或者写不到数据

在读写之前追号设置俄为行缓冲!


              管道可在程序设计时候,作为中间处理代码,插入某一个流程,作为中间处理!


FIFO

管道只能用于亲缘关系的进程之间通信

FIFO可以用于无关系的进程间通信

可在磁盘中中创建一个文件,管道的inode会指向内核空间的,管道内存(循环队列)

文件的实际大小是0

通过文件所有的进程就都能索引到管道的实际内容!


#include <sys/stat.h>

int mkfifo(const char *path, mode_t mode);

int mkfifoat(int fd, const char *path, mode_t mode );

创建一个FIFO文件,通过S_ISFIFO可以判断是否文FIFO文件


open未指定O_NOBLIOCK(默认),读(写)打开,无进程以写(读)打开时,阻塞,知道有进程以写(读)打开


FIFO可以用来实现服务进程/客户进程的模型

客户以公用管道写,大小应小于PIPE_BUF 以保证写操作的原子性

服务以私有管道写,客户从此管道读(注意处理SIGPIPE,客户进程可能以外终止)


shell 用来将数据从一条管道送到另一条管道,无须临时文件???


                                                               














  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值