How to use SYSVIPC in MSYS2?

298 Views Asked by At

I'm using package msys2/gcc in a 64-bit MSYS2 installation, under Windows 10 64-bit.

Sample C program:

#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");
}

When I run this from the MSYS2 shell I get FAIL 88 which is ENOSYS indicating that shmget is not implemented.

Is it possible to make the call work? The full program also uses semget and semop.

From googling it seems there is a lot of source code in MSYS2 related to SYSV IPC but perhaps something needs to be enabled somewhere.

0

There are 0 best solutions below