0

在 Linux x86_64 上加载共享库时我得到

dlopen error: "FILENAME" failed to map segment from shared object: Resource temporarily unavailable

这台机器安装了 48 GiB 的主机内存,没有其他用户登录。所以,它可能不是因为内存不足。

我加载了几十个共享库。

代码就像(非常减少的设置)。是mlockall的,是故意的:

#if _POSIX_MEMLOCK > 0
#warning "POSIX_MEMLOCK available" 
#else
#error "POSIX_MEMLOCK needed. Aborting"
#endif

int main()
{
  if (mlockall(MCL_FUTURE)) {
    printf("error page-locking\n");
    exit(1);
  }

  void *handle;
  handle = dlopen( "filename.so" ,  RTLD_LAZY);

}

页面锁定还有其他限制吗?

4

0 回答 0