2

我有两个 Linux C/C++ 程序,它们使用共享内存(shm_open、mmap 等)与该共享内存中的互斥锁(pthread_mutex_*)和条件变量(pthread_cond_*)进行通信。如果这两个程序都被编译(使用 gcc)并在 32 位 Linux (RHEL) 机器上运行,它们可以成功通信。另一方面,如果一个进程在 64 位机器上编译,另一个仍然在 32 位机器上编译(由于遗留代码),并且两者都在 64 位机器上运行,pthread_cond_wait 在 32-即使在 64 位进程执行 pthread_cond_signal 之后,位进程也会永远等待。我在这里想念什么。或者是不可能在 32 位和 64 位应用程序之间使用条件变量和互斥锁?

4

0 回答 0