6-4.c

来自「linux下一些命令的c语言的实现」· C语言 代码 · 共 42 行

C
42
字号
#include <unistd.h>     /* Support all standards    */
#include <stdlib.h>     /* malloc support           */
#include <sys/mman.h>   /* Memory locking functions */

#define BUFFER 2048

void main()
{
  void *p[3];  /* Array of 3 pointers to void */
p[0] = malloc(BUFFER);

 	/* Currently no memory is locked */

  if ( mlockall(MCL_CURRENT) == -1 )
    perror("mlockall:1");

 /* All currently allocated memory is locked */

  p[1] = malloc(BUFFER);

 /* All memory but data pointed to by p[1] is locked */

  if ( munlockall() == -1 )
    perror("munlockall:1");

 /* No memory is now locked */

  if ( mlockall(MCL_FUTURE) ==- 1 )
    perror("mlockall:2");

       /* Only memory allocated in the future */
       /*   will be locked */
  p[2] = malloc(BUFFER);

 /* Only data pointed to by data[2] is locked */

  if ( mlockall(MCL_CURRENT|MCL_FUTURE) == 1 )
    perror("mlockall:3");

  /* All memory currently allocated and all memory that  */
  /* gets allocated in the future will be locked         */
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?