Как использовать SYSVIP C в MSYS2? - PullRequest
0 голосов
/ 24 апреля 2020

Я использую пакет 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 и получаю FAIL 88, что означает ENOSYS, что указывает на то, что shmget не реализован.

Можно ли заставить вызов работать? Полная программа также использует semget и semop.

Из поисков в гугле кажется, что в MSYS2 много исходного кода, связанного с SYSV IP C, но, возможно, что-то нужно где-то включить.

...