0

msys2/gcc在 64 位 MSYS2 安装中使用包,在 Windows 10 64 位下。

示例 C 程序:

#include <stdio.h>
#include <errno.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <sys/stat.h>

int main(void)
{
    uint64_t key = ftok("shm.exe", 8);
    printf("%llx\n", key);
    int r = shmget(key, 1024, S_IRUSR|S_IWUSR|IPC_CREAT);
    if ( r == -1 )
        printf("FAIL %d\n", errno);
    else
        printf("OK\n");
}

当我从 MSYS2 shell 运行它时,我得到FAIL 88ENOSYS表明 shmget 没有实现。

是否可以进行通话?完整程序还使用semgetsemop

从谷歌搜索来看,在 MSYS2 中似乎有很多与 SYSV IPC 相关的源代码,但可能需要在某处启用某些东西。

4

0 回答 0