在cygwin上运行共享内存程序

时间:2014-01-12 20:29:42

标签: windows cygwin shared-memory

我试图在windows中的cygwin上运行以下代码;它中没有编译错误,但是当我尝试运行它时,我有 错误的系统调用(核心转储) 错误。

 #include <sys/types.h>
 #include <sys/ipc.h> 
 #include <sys/shm.h> 
 #include <stdio.h> 
 #include <stdlib.h>
 void main ( ) 
 { int shm_id; key_t mem_key;
 int *shm_ptr; 
 mem_key = ftok(".", 'a'); 
 shm_id = shmget(mem_key, sizeof(int), IPC_CREAT | 0666);
 if (shm_id < 0) 
 { printf("*** shmget error (server) ***\n");
 exit(1);
 }
 shm_ptr = (int *) shmat(shm_id, NULL, 0); 
 /* attach */ 
 if ((int) shm_ptr == -1) 
 {
 printf("*** shmat error (server) ***\n");
 exit(1);
 } 
}

为什么我有这个错误?我可以解决吗?

非常感谢。

1 个答案:

答案 0 :(得分:1)

您需要配置并启动cygserver。