当前位置: 首页 > news >正文

宿迁莱布拉网站建设南川网站制作

宿迁莱布拉网站建设,南川网站制作,本地江苏网站建设,Wordpress的高级版概念本地通信传统的通信机制1.无名管道 pipe2.有名管道 fifo3.信号 signalsystemV通信机制 1.消息队列 message queue2.共享内存 shared memory3.信号灯集 semphore跨主机的通信方式套接字 socket无名管道本质就是一个内核文件(文件描述符)操作管道文件本质上就是文件的读取和写…

概念

本地通信

传统的通信机制

1.无名管道 pipe

2.有名管道 fifo

3.信号 signal

systemV通信机制 

1.消息队列 message queue

2.共享内存 shared memory

3.信号灯集 semphore

跨主机的通信方式

套接字 socket

无名管道

本质

就是一个内核文件(文件描述符)

操作管道文件本质上就是文件的读取和写入

只可使用文件io函数:open close read write(lseek移动光标不允许使用)

特点

管道文件满足队列的特点

管道数据为一次性

管道读写端关闭后,管道自动释放

write和read读取特殊文件时,默认是阻塞函数

管道大小

65536字节--->64K

管道是一种半双工的通信机制

单工:同时只运行A--->B,不允许B--->A

半双工:同时只允许A--->B 或者 允许B--->A

全双工:同时允许A--->B 也允许B--->A

无名管道

该管道没有名字,只可用于存在亲缘关系的进程间通信

无名管道函数

pipe

#include <unistd.h>

int pipe(int pipefd[2]);

功能:创间无名管道

参数: int pipefd[2]:指向数组长度为2的首地址

            pipefd[0]:管道端 pipefd[1]:管

返回值: 成功返回0,失败返回-1,跟新errno

管道破裂

写端开启,读端关闭,不可以写,写入会发生管道破裂

无名管道

和无名管道大部分无异

区别---可用于无亲缘

该管道有名字,可以用于不存在亲缘关系的进程间通信

有名管道函数

mkfifo

#include <sys/types.h>

#include <sys/stat.h>

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

功能:创建有名管道

参数:const char *pathname        创建有名管道的路径以及文件名

           mode_t mode                     权限(记得修改权限掩码umask(0);)

返回值:成功0,失败-1,更新errno

信号   

概念      

信号:是一种软件层上的中断模拟,是一种异步通信模式

异步:任务与任务之间没关系,按照时间片轮询机制访问

同步:任务有层级关系,先执行前置任务,才能执行后续任务

信号的处理方式

默认:当触发信号后,默认执行信号对应的处理函数

忽略:当触发信号后,会忽略信号处理函数

捕获:当触发信号后,做另一个信号处理函数

认识信号

kill -l        查看信号

1-31        标准信号,当多次发送时,内核只做一次处理

34-64      实时信号,当多次发送时,会把信号存于队列,执行上一个信号后,再执行下一个(类比vip)

硬件点出来的信号

2)SIGINT        ctrl c

3)SIGQUIT     ctrl \

19)  SIGSTOP  ctrl z

不可忽略和捕获的信号

9)SIGKILL

19)SIGSTOP 

常见信号

11) SIGSEGV 段错误时

13) SIGPIPE 管道破裂

14) SIGALRM 时钟

17) SIGCHLD 子进程退出后给父进程发送该信号

信号相关函数

signal

sighandler_t signal(int signum, sighandler_t handler);

功能:信号处理函数(默认,忽略,捕获)

参数:int signum        处理的信号编号

           sighandler_t handler        处理方式    函数指针

           SIG_IGN        忽略

           SIG_DFL        默认

           函数名            捕获

返回值:成功返回之前的信号处理方式,失败返回SIG_ERR,更新errno

信号屏蔽

正在执行信号处理函数时,重新同一个信号,后面的信号会被屏蔽不执行,此时需要其他信号终止

kill

int kill(pid_t pid, int sig);

功能:发送信号

参数:pid_t pid     

pid进程
>0

给指定的进程发送

=0给当前进程组下所有进程发送
=-1给主机下的所有有权限的进程发送,不含1
<-1

把信号发给|pid| 进程组 下的所有进程组

        int sig        信号

返回值:成功返回0,失败返回-1,更新errno

alarm

unsigned int alarm(unsigned int seconds);

功能:发送一个时钟信号 等价于 kill(pid,14)

参数:unsigned int seconds 定的时间(秒数)

返回值:返回生一次未被触发的剩余秒数,没有则返回0

速记

函数功能用法参数返回值
pipe无名管道创建int pipefd[2];  pipe(pipefd);pipefd数组成0败-1,更新errno
mkfifo有名管道创建mkfido(路径,权限)路径,权限成0败-1,更新errno
signal信号处理signal(信号编号,信号方式)

handler

SIG_IGN 忽略

SIG_DFL 默认

函数名     捕获

成功返回之前的信号处理方式,失败返回SIG_ERR,更新errno
kill发送信号kill(pid,信号)

pid_t pid

0    当前组下

>0  即pid

成功返回0,失败返回-1,更新errno
alarm定时alarm(秒数)秒数返回生一次未被触发的剩余秒数,没有则返回0

http://www.dtcms.com/a/560387.html

相关文章:

  • 医院网站建设细节做网站需要什么资料
  • wordpress有多少模版网站内链seo
  • 个人网站链接怎么做网站怎么能在百度搜到
  • 网站推广应注意哪些事项南宁软件外包
  • 凡客诚品网站推广营销单页网站
  • 怎么整理网站汽车最好网站建设
  • 徐州建设网站的公司做本地网站需要的软件
  • 如何搜网站phpwind网站
  • 验证网站所有权个人主页网站
  • 明年做那些网站致富公司注册网站官网
  • 做的网站进不去后台做公司网站需要服务器吗
  • 觉 网站电商小程序定制开发
  • 做网站起名字合肥网站建设技术托管
  • 做电影网站违法商业空间设计案例
  • 做蛋糕视频的网站wordpress建站解析
  • 单位做网站需要多少钱电商交流平台有哪些
  • 诸城网站建设0536s北京东宏建设网站
  • 哪个网站做外贸年费比较便宜品牌推广百度seo
  • 简述网站建设流程企业网站脚本语言
  • 天津平台网站建设方案民族建设集团有限公司官方网站
  • 免费 建网站网站域名com和cn
  • 在linux系统上用什么做网站有人用dw做网站吗
  • 个性化网站建设报价资源网站的建设
  • 网站开发方法怎样在工商局网站上做网登
  • 网站的作用有哪些wordpress if else
  • 网站怎么分工做影视logo免费设计
  • 网站建设板块免费下载云南政务网站建设
  • 怎么做淘客的网站短视频素材下载网站
  • 网站做任务包括什么企业网站开发研究现状
  • 全是广告的网站网站如何做邮箱订阅号