当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 1 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 系统v共享内存 段错误,why?
帖子发表于 : 2008-12-25 16:55 

注册: 2008-09-23 21:13
帖子: 247
送出感谢: 0 次
接收感谢: 0 次
内容如下,运行说段错误就不动了,另外 /dev/shm/myshm2 这个文件是程序运行产生还是本来应该存在?我看了一下这个/dev/shm下没有 myshm2这个文件阿

/*svwrite.cprogram,system v shared memory write interface*/
#include <sys/ipc.h>
#include <sys/shm.h>
#include <sys/types.h>
#include <unistd.h>
#include <string.h>
#include <stdio.h>
typedef struct
{
char name[4];
int age;
}people;
main(int argc,char** argv)
{
int shm_id,i;
key_t key;
char temp;
people *p_map;
char* name="/dev/shm/myshm2";
key=ftok(name,0); /*use ftok function,create stantard key*/
shm_id=shmget(key,4096,IPC_CREAT); /*use shmget function,get shared memory area'id*/
if(shm_id==-1)
{
perror("Get shared memory area'id failed");
return;
}
p_map=(people*)shmat(shm_id,NULL,0); /*use shmat function,mapping shared memory*/
temp='a';
for(i=0;i<10;i++)
{
temp+=1;
memcpy((*(p_map+i)).name,&temp,1);
(*(p_map+i)).age=20+i;
}
if(shmdt(p_map)==-1) /*use shmdt function,release mapping that process made for share memory area*/
perror("release mapping failed");
}

======================================================
/*svread.c program:system v shared memory read interface*/
#include <sys/ipc.h>
#include <sys/shm.h>
#include <sys/types.h>
#include <unistd.h>
#include <string.h>
#include <stdio.h>
typedef struct
{
char name[4];
int age;
}people;
main(int argc, char** argv)
{
int shm_id,i;
key_t key;
people *p_map;
char* name="/dev/shm/myshm2";
key=ftok(name,0); /*use ftok function,create standard key*/
shm_id=shmget(key,4096,IPC_CREAT); /*use shmget function,get shared memory area's id*/
if(shm_id==-1)
{
perror("get shared memory area's id failed");
return;
}
p_map=(people*)shmat(shm_id,NULL,0);
for(i=0;i<10;i++)
{
printf("name:%s\t",(*(p_map+i)).name);
printf("age:%d\n",(*(p_map+i)).age);
}
if(shmdt(p_map)==-1) /*use shmdt function,release the mapping that processe made for share memory*/
perror("release mapping failed");
}


_________________
念几句佛经就以为自己在悟道,引用几句圣经就以为自己是上帝的使者。
躲在阴暗的角落就以为看不见你那肮脏的灵魂?
游走在灰色领域就以为安然无恙?
举头三尺有神明,不是不报是时候未到。


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 1 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译