C言語でメモリをロックする方法

C言語では、以下の関数がメモリをロックするのに使用できます。

  1. mlock()
int mlock(const void *addr, size_t len);

アドレスをaddr、長さをlen(バイト単位)で指定してメモリー領域をロックする。正常終了は0、エラーは-1を返す。

  1. mlockall()
int mlockall(int flags);

flagsオプションは、ロックされるメモリの範囲を指定します。次の値を使用できます。

  1. MCL_CURRENT: ロックし、現在プロセスに割り当てられているすべてのメモリー領域をロックします。
  2. MCL_FUTURE: 将当前进程之后分配的所有内存空间锁定。

関数の戻り値が0ならば成功、-1ならば失敗

権限が必要なので、通常スーパーユーザー(root)として実行する必要があります。また、メモリロックはシステムパフォーマンスの低下につながる可能性があるため、注意して使用してください。

bannerAds