我需要 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
不能抛出任何东西。