Tag: posix

是否有可能以某种方式在Docker容器之间或容器与主机之间使用POSIX信号量?

我正在尝试将多进程应用程序迁移到Docker。 不同的进程将被放置在不同的Docker容器中。 应用程序使用共享内存交换数据和信号量进行同步。 为了不使用IPC命名空间,我已经重新编译了Docker,并且使用sudo ipcs -m有效地检查了共享内存缓冲区是否可以从不同的容器访问。 问题是信号灯不工作。 我编写了这些简单的程序来检查Docker中POSIX信号量的行为: /* To be compiled with -lpthread */ #include <stdio.h> #include <fcntl.h> #include <semaphore.h> int main(void) { int ret, val; sem_t * mySem; printf("[ONE] Opening the semaphore…\n"); mySem = sem_open("sem1", O_CREAT, 0777, 0); if (mySem == SEM_FAILED) { printf("[ONE] Error on sem_open()\n"); return -1; } ret = sem_post(mySem); […]