博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c++ 后台 常备知识
阅读量:4311 次
发布时间:2019-06-06

本文共 665 字,大约阅读时间需要 2 分钟。

关于带缓冲的io与不带缓冲的io,此时的缓冲指应用层面的缓冲,即先写入缓冲区(用户空间),缓冲区满时执行系统调用,将数据拷贝至内核(内核缓冲区),内核缓冲区满才执行io

即双缓冲,第一层为了减少系统调用次数,第二层为了减少io次数

 

进程间通信方式

匿名pipe,通过文件名描述符建立管道,pipe(fd),然后调用fork,通过fd来读写管道中的数据,可想而知父进程和子进程共享的东西是文件描述符

高级pipe,pipe、fork、exe()执行其他程序,即实现两个不同程序的通信

有名pipe,通过 int mkfifo(const char *pathname, mode_t mode); 打开一个有名管道,一旦创建有名管道后,就可以使用一般的文件操作函数操作它,即用fd=fopen(文件名),用fd读写

消息队列,通过ftok返回一个key值:key_t ftok( char * fname, int id ),msqid = msgget(key, IPC_CREAT|0777) 创建一个消息队列msqid。客户端用ftok传入相同文件名,可活动key值

信号量, int semget(key_t key, int num_sems, int sem_flags)

内存映射之mmap ,通过将一段硬盘地址映射至内存,实现多进程与服务进程间的通信,容量大

内存映射至shm,通过将一段主存空间映射至内存

转载于:https://www.cnblogs.com/GreenScarf/p/11099620.html

你可能感兴趣的文章
永久修改PATH环境变量的几种办法
查看>>
大数据学习之HDP SANDBOX开始学习
查看>>
Hive Beeline使用
查看>>
Centos6安装图形界面(hdp不需要,hdp直接从github上下载数据即可)
查看>>
CentOS7 中把yum源更换成163源
查看>>
关于yum Error: Cannot retrieve repository metadata (repomd.xml) for repository:xxxxxx.
查看>>
2020-11-18
查看>>
Docker面试题(二)
查看>>
【NOI 2018】归程(Kruskal重构树)
查看>>
注册用户
查看>>
TZC Intercommunication System
查看>>
HDU 4571 SPFA+DP
查看>>
centos 创建以日期为名的文件夹
查看>>
Java Timer触发定时器
查看>>
Page Object设计模式
查看>>
程序的基础知识
查看>>
在VIM中使用GDB调试 – 使用vimgdb
查看>>
python爬虫---从零开始(五)pyQuery库
查看>>
POJ2236(KB5-A)
查看>>
Centos MySQL数据库迁移详细步骤
查看>>