Windows Linux兼容层。功能没有实现?

时间:2016-11-15 10:08:56

标签: c linux windows ubuntu shared-memory

ORIGINAL:

我一直在尝试使用适用于Linux的Windows子系统(在Windows上使用Ubuntu上的Bash)实现基本的共享内存程序。这是我写的代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <signal.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>

#define KEY 1374

int shmid;
char *dataPtr;

int main (void) {
    shmid = shmget((key_t)KEY,1024, IPC_CREAT | 0666);
    dataPtr = shmat(shmid, (void*)0,0);
    if(dataPtr == (char*)(-1))
        perror("shmat error");
    strcpy(dataPtr,"test");
    sleep(10);
    shmdt(dataPtr);
    shmctl(shmid, IPC_RMID, NULL);
}

我使用GCC编译它没有任何错误或警告,但当我尝试运行它时,我收到此错误消息:

  

shmat错误:函数未实现

     

分段错误(核心转储)

我试图找到这个错误的底部,但是当我用谷歌搜索它时,我 literally got nothing

所以问题是:我是否非常简单地搞砸了一些东西,或者是否可能在“Windows上的Ubuntu”上没有实现共享内存系统?

修改

我试图在我的教师的Linux服务器上运行我的代码,它运行正常。显然,问题在于Windows系统上的Ubuntu上的Bash。共享内存系统可能根本没有实现。

0 个答案:

没有答案