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