我需要 C 或 C++ 中的一种方法来从/dev/shm. 请注意ARM,不幸的是,在我在 Linux 上的架构中,ipcs报告了错误的最大值。可用内存信息,但df -h正确地为我提供了当前可用内存tmpfs。
问题是我试图通过 分配共享内存boost::interprocess::shared_memory_object::truncate,但是当内存不可用时,这个函数不会抛出。这个问题显然不在boost::interprocess,而是来自底层ftruncate(),当没有可用内存时(https://svn.boost.org/trac/boost/ticket/4374)不返回适当的错误,所以boost不能抛出任何东西。