【发布时间】:2013-03-24 22:19:25
【问题描述】:
我提前为我的无知道歉,这给我带来的麻烦比它应该的要多得多,但我已经把头撞到办公桌上好几个小时了,试图找出我做错了什么。我想编写一个具有存储结构的共享内存的应用程序。出于某种原因,我无法开始着手,我一直在访问我的结构成员时遇到段错误。
#include <stdio.h>
#include <sys/shm.h>
#include <sys/stat.h>
#define MAX_SEQUENCE 10
struct shared_data
{
long sequence[10];
int sequence_size;
};
typedef struct shared_data shared_data;
int main(int argc, char * argv[])
{
int segment_id;
shared_data * shared_memory;
segment_id = shmget(IPC_PRIVATE, sizeof(shared_data), S_IRUSR | S_IWUSR);
shared_memory = (shared_data *) shmat(segment_id, NULL, 0);
shared_memory->sequence_size = atoi(argv[1]);
printf("\n\nSequence Size: %d\n\n",shared_memory->sequence_size);
shmdt(shared_memory);
}
更新:谢谢大家,我的系统管理员正在运行诊断程序并以某种方式禁用了共享内存。
【问题讨论】:
-
我刚刚尝试了您发布的代码,它编译并运行良好
标签: c shared-memory