IPC三种通信机制是指:信号量、共享内存、消息队列 ,管道和命名管道,socket套接字 
 
信号量:通过操作系统中的PV操作来实现;
共享内存:申请一块内存,进程A往共享内存中写,其他的进程就可以通过读出共享内存中的内容来获取进程A所传送的信息;
消息队列:创建一个消息队列,进程A往队列里面写,那么进程B通过读队列中的容来获取进程A传送的信息。
 管道:
具体的实现其实就是用三组函数来实现的,而且形式都是很有相似性的。
 
信号量:
#include
int semget(key_t key,int num_sems,int sem_flgs);
int semctl(int sem_id,int sem_num,int command...);
int semop(int sem_id,struct sembuf *sem_ops,size_t num_sem_ops);
 
每个函数的功能和参数的意义在手册中都能找到。
 
 
1、semget                创建一个信号量或者获取一个已知信号量的键
key:不相关的进程可以通过他来访问同一个信号量
num_sems:需要的信号量数目。几乎总是1
sem_flags:一组标志,例如IPC_CREAT;
返回值是信号量标志符,给其他信号量函数使用
 
 
2、semctl:
sem_id:信号量标志符,semget的返回值
sem_ops:信号量编号,一般取0
command:   就不解释了,在手册中有详细的解释,我就偷偷懒吧。
 
3、semop
用于改变信号量的值
struct sembuf{
short sen_nums;            //信号量编号,一般取0
short sem_op;               //一般-1是P操作,1是V操作
short sem_flag;            //通常设置为UNDO
}
 
 
 
共享内存
允许两个不像关的进程访问同一个逻辑地址
#include
1、int shmget(key_t key,size_t size,int shmflag);
2、void *shmat(int shm_id,const void *shm_addr,int shm_flag);
3、int shmctl(int shm_id,int cmd,struct shmid_ds *buf);
4、int shmdt(const void *shm_addr);
 
参数的常用值:
1、shmflag:0666|IPC_CREAT
2、shmaddr=0           shm_flag=0
3、cmd=IPC_SET  cmd=IPC_RMID
 
 
 
 
消息队列:
提供从一个进程向另一个进程发送一个数据块的方法
#include
int msgget(key_t key,int msgflg);
int msgctl(int magid,int cmd,struct msgid_ds *buf);
int msgsnd(int msgid,void *msg_ptr,size_t msg_sz,int msgflag);
int msgrcv(int msgid,void *msg_ptr,size_t msg_sz,long int msg_type,int msgflag);
 
 
省略了许多的说明,这些函数使用都可以在手册中查到。OK! 偷下懒~

IPC 通信接口函数的名字的更多相关文章

  1. C: 函数的名字是否受大小写影响?

    函数的名字大小写是否为同一函数? 不是,大小写不同,函数不同. 环境: gcc 版本 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) Linux ubuntu 3.2.0-2 ...

  2. Linux IPC机制 - 函数总结

    以下表格为IPC的函数总结,IPC包括: 1. 无名管道(Pipe):http://www.cnblogs.com/Jimmy1988/p/7553069.html 2.有名管道(FIFO):http ...

  3. diango中让装了装饰器的函数的名字不是inner,而是原来的名字

    让装了装饰器的函数的名字不是inner,而是原来的名字 from functools import wraps def wrapper(func): @wraps(func) # 复制了原来函数的名字 ...

  4. 练习使用Trim()函数规范名字输入

    Java中的Trim()函数能够去除字符串的空白前缀和空白后缀,可用来规范用户输入的内容,详细这样用: String s="   Hello world  ".trim(); 然后 ...

  5. nm 命令能够显示目标文件中重载函数的名字改变(C++)

    #include <stdio.h> #include <iostream> using std::cout; using std::endl; //这里的两个不同的add函数 ...

  6. C++日志之获取函数的名字,行号,文件名

    在后台程序运行出问题时,详尽的日志是抓错不可缺少的帮手,这里提供一个能自动记录日志触发点文件名.行号.函数名的方法,关键是利用C99新增的预处理标识符__VA_ARGS__ 先介绍几个编译器内置的宏定 ...

  7. 002:IPC与system函数简介

    1:IPC名字mq_XXX,sem_XXX,shm_XXX. 消息队列 信号量 共享内存区 <mqueue.h> <semaphore.h> <sys.mman.h> ...

  8. 子进程回收资源两种方式,僵尸进程与孤儿进程,守护进程,进程间数据隔离,进程互斥锁,队列,IPC机制,线程,守护线程,线程池,回调函数add_done_callback,TCP服务端实现并发

    子进程回收资源两种方式 - 1) join让主进程等待子进程结束,并回收子进程资源,主进程再结束并回收资源. - 2) 主进程 “正常结束” ,子进程与主进程一并被回收资源. from multipr ...

  9. [转][C/C++]函数名字修饰(Decorated Name)方式

    1.C/C++函数修饰名: 对于我们的C/C++源程序而言,函数名只是函数的一小部分,函数还有调用方式(参数入栈方式).返回值类型.参数个数和各参数类型等信息,对于C++类成员函数,还有更多信息.这些 ...

随机推荐

  1. cocos2dx 3.x c++代码打包给lua调用过程(mac)

    下载cocos2dx 框架,在应用程序->cocos->framework->cocos2d-x-3.x->tools->tolua目录下,一个ini文件对应一个py文件 ...

  2. javascript设计模式(张容铭)学习笔记 - 外观模式绑定事件

    有一个需求要为document对象绑定click事件来是想隐藏提示框的交互功能,于是小白写了如下代码: document.onclick = function(e) { e.preventDefaul ...

  3. 机器学习(一)之KNN算法

    knn算法原理 ①.计算机将计算所有的点和该点的距离 ②.选出最近的k个点 ③.比较在选择的几个点中那个类的个数多就将该点分到那个类中 KNN算法的特点: knn算法的优点:精度高,对异常值不敏感,无 ...

  4. 利用sysbench工具测试MHA

    利用sysbench工具测试MHA 1. sysbench准备数据 2. sysbench开始压测 3. master模拟意外宕机 4. mysqldb2 上观察mha状态 5. 手工failover ...

  5. Livid : 在 26 岁时写给 18 岁的自己

    转载自: https://livid.v2ex.com/essays/2012/01/24/a-letter-from-26-to-18.html 在 26 岁时写给 18 岁的自己 Jan 24, ...

  6. 【mysql】【windows】MySQL 服务无法启动,服务没有报告任何错误,请键入 NET HELPMSG 3534 以获得更多的帮助。

    成功安装以后,启动MySQL,输入: net start mysql 提示: ”MySQL 服务无法启动,服务没有报告任何错误,请键入 NET HELPMSG 3534 以获得更多的帮助.” 查了下, ...

  7. 【js】【转发】jreturn;、return true、return false;区别

    一.返回控制与函数结果, 语法为:return 表达式; 语句结束函数执行,返回调用函数,而且把表达式的值作为函数的结果  二.返回控制, 无函数结果,语法为:return;  在大多数情况下,为事件 ...

  8. 8.Yii2.0框架控制器接收get.post数据

    8.Yii2.0框架控制器接收get.post数据 一.get传参 <?php /** * Created by Haima. * Author:Haima * QQ:228654416 * D ...

  9. Python基础-包与模块

    Python基础-包与模块 写在前面 如非特别说明,下文均基于Python3 摘要 为重用以及更好的维护代码,Python使用了模块与包:一个Python文件就是一个模块,包是组织模块的特殊目录(包含 ...

  10. Python之简单Socket编程

    Socket编程这块儿还是比较重要的,记录一下:实现服务器端和客户端通信(客户端发送系统指令,如ipconfig等,服务器端执行该指令,然后将指令返回结果给客户端再传过去,设置一次最多直接收1024字 ...