#include<sys/shm.h>intshmget(key_tkey,size_tsize,intoflag);返回:成功则为共享内存区对象,出错为-1key的值可以是ftok的返回值,也可以是IPC_PRIVATE.ftok()是非亲缘进程间IPC_PRIVATE是亲缘进程间的size以字节为单位指定内存区的大校当实际操作为创建一个新的共享内..
分类:
其他好文 时间:
2017-05-25 22:17:21
阅读次数:
149
ftok函数的定义:系统建立IPC通讯 (消息队列、信号量和共享内存) 时必须指定一个ID值。通常情况下,该id值通过ftok函数得到。 头文件 #include <sys/types.h> #include <sys/ipc.h> 函数原型: key_t ftok( const char * fn ...
分类:
其他好文 时间:
2016-06-19 17:02:31
阅读次数:
276
消息队列:一个进程向另一个进程发送数据块
消息队列基于消息,管道基于字节流
消息队列是用链表实现
1.创建:intmegget(key_tkey,intmsgflag)
key:函数ftok()的返回值
msgflag:IPC_CREAT是创建新的消息队列;IPC_EXCL与IPC_CREAT一起使用,即如果要创建的消息队列已存在,则..
分类:
其他好文 时间:
2016-05-22 18:36:19
阅读次数:
184
一、消息队列:从一个进程向另一个进程发送数据块,读取不一定是先入先出。管道与消息队列区别:管道基于字节流的,消息队列基于消息;管道只能发送字符串,消息队列有类型;管道随进程,消息队列随内核。二、创建函数原型:intmsgget(key_tkey,intmsgflg);//key由ftok生成,IP..
分类:
其他好文 时间:
2016-04-17 23:29:06
阅读次数:
365
消息队列的基础知识:(1).消息队列是基于消息的,而管道是基于字节流的,且消息队列的读取不一定是先入先出(2).消息队列是用链表实现的。2.代码如下://comm.h
1#ifndef_COMM_
2#define_COMM_
3
4#include<stdio.h>
5#include<stdlib.h>
6#include<sys/ipc..
分类:
其他好文 时间:
2016-04-15 23:13:13
阅读次数:
291
信号量函数(3个)1.semget原型:intsemget(key_tkey,intnsems,intsemflg);返回值:失败返回-1,成功返回一个信号集的标识(该标识通过第一个参数key决定)描述:创建或者获取一个信号量集参数:key是关键字,一般由系统调用ftok返回,系统内核将此值与系统中其它信号量集的key..
分类:
其他好文 时间:
2016-04-15 07:10:38
阅读次数:
476
一.消息队列消息队列是一个进程向另一个进程发送一个数据块的方法,所以消息队列是基于消息的,而管道则是基于字节流的。消息队列提供的是进程间的双向通信。消息队列中的几个原型函数:1.获取消息信息:intmsgget(key_tkey,intmsgflag);key是用ftok()函数创建的2.接收消息:ss..
分类:
系统相关 时间:
2016-04-12 07:48:11
阅读次数:
218
消息队列提供了一种一个进程向另一个进程发送一个数据块的方法。消息队列与管道不同的是,消息队列是基于消息的,而管道是基于字节流的。消息队列的创建或取得一个已存在的消息队列:intmsgget(key_tkey,intmsgflag);其中的参数:key:由ftok函数生成;msgflag:IPC_CREAT:如果ip..
分类:
其他好文 时间:
2016-04-12 07:43:10
阅读次数:
183
看这题目就很乱,心情当然也是不怎么美好了。前一段时间做了一个项目,AIX(Unix的一种)中的一个系统向WINDOWS移植,开发环境由IBM的C/C++(叫什么忘记了,好像是xlC)变为VC++。这是算过来,但是最近进程通信的信号量出了问题(也不算什么问题,就是全局信号量的名字应该怎么命名有点问题了...
共享内存是被多个进程共享的一部分物理内存。共享内存是进程间共享数据的一种最快的方法,一个进程向共享内存区域写入了数据,共享这个内存区域的所有进程就可以立刻看到其中的内容。
关于共享内存使用的API
key_t ftok(const char *pathname, int proj_id);
#在IPC中,我们经常用一个 key_t 的值来创建或者打开 信号量,共享内存和消息队列。...
分类:
系统相关 时间:
2015-08-09 18:52:25
阅读次数:
150