当前位置: 技术问答>linux和unix
关于共享内存使用的疑问
来源: 互联网 发布时间:2017-05-30
本文导语: 疑问有以下几点: 1.由于共享内存不会随着进程的释放而释放,那么需要在进程的结尾使用shmdt断开共享内存连接吗?(PS:这里的进程指单进程而非多进程) 2.共享内存伴随程序第二次运行,无法从共享内存中读取数据,本人使...
疑问有以下几点:
1.由于共享内存不会随着进程的释放而释放,那么需要在进程的结尾使用shmdt断开共享内存连接吗?(PS:这里的进程指单进程而非多进程)
2.共享内存伴随程序第二次运行,无法从共享内存中读取数据,本人使用的是固定的KEY来创建的内存,在进程结尾断开连接。
这样是否就意味着共享内存中的东西自动会消失?
3.共享内存是否是主要运用于多线程中?
之所以有以上几点疑问是因为在程序中运行共享内存结果不如意。废话不多说。直接上代码。
/********************************************
*
* Name: shmcopy.c
*
* Funtion:
*
*
* Time:2014-10-09
*
********************************************/
#include "fpfmipc.h"
#include "ourhdr.h"
#include
int createfile( char* pathname );
int main( int argc,char* argv[] )
{
int filedes;
int shmid;
pid_t pid;
/*** 自定义初始化共享内存结构 ****/
databuf_s *buf1,*buf2;
/*** 参数区控制 ***/
if ( argc != 3 && argc != 2)
{
usage(); //提示函数
return -1;
}
if ( argc == 3 )
{
if ( filedes=createfile( argv[2] )