首页 > 系统相关 >内存管理函数

内存管理函数

时间:2022-12-24 18:46:34浏览次数:43  
标签:函数 映射 管理 void start 内存 include

相关函数: malloc

头文件  : #include <stdlib.h>

函数原型: void *malloc(size_t size);

函数说明: 分配内存

返回值  : 成功返回分配的内存的首地址

           失败返回NULL

相关函数: free

头文件  : #include <stdlib.h>

函数原型: void free(void *ptr);

函数说明: 释放内存,参数ptr为函数malloc返回的指针,调用free后ptr所指向的内存会被系统回收。

返回值  : 无

相关函数: mmap(内存映射)

头文件  : #include <unistd.h>

           #include <sys/mman.h>

函数原型: void mmap(void *start, size_t length, int prot, int flags, int fd, off_t offset);

函数说明: mmap用来将某个文件映射到内存中,通过对内存的读写实现对文件的操作。

           参数含义如下:

           start  : 指向映射后的内存起始地址,通常设为NULL,表示让系统来选定映射地址。操作成功后,start里的值为映射后的内存首地址。

           length : 指定文件中被映射的部分的长度,以字节为单位。0表示全部映射。

           prot  : 映射区域的使用方式,有以下选项

                  PROT_EXEC    映射区域可被执行

                  PROT_READ    映射区域可被读取

                  PROT_WRITE   映射区域可被写入

                  PROT_NONE    映射区域不能存取

           flag  : 设置映射区域的属性,有以下选项

                  MAP_FIXED    如果start指定的地址无法映射,则放弃映射

                  MAP_SHARED  对映射区域的修改会复制回文件,而且允许其他映射该文件的进程共享

                  MAP_PRIVATE  不会影响被映射的文件

                  MAP_ANONYMOUS  建立匿名映射,不涉及文件,无法和其他进程共享

                  MAP_LOCKED  将映射区域锁住

           fd   :  文件描述符,代表要映射的文件

           offset:  文件映射的偏移量。通常设置为0,代表从文件开始处映射,offset

必须是分页大小的整数倍

返回值  : 无

相关函数: munmap 

头文件  : #include <unistd.h>

           #include <sys/mman.h>

函数原型: int munmap(void *start, size_t length);

函数说明: 取消参数start所指向的映射内存。当进程结束时,内存映射会自动取消,但关闭对应的文件描述符不会取消映射

返回值  : 0 :操作成功

           -1:操作失败,错误原因存于errno中

标签:函数,映射,管理,void,start,内存,include
From: https://www.cnblogs.com/cnetsa/p/17003191.html

相关文章

  • 八、进程相关函数
    相关函数:abort头文件 :#include<stdlib.h>函数原型:voidabort(void);函数说明:引起进程异常终止,此时所有已打开的文件流会自动关闭,缓冲区里的数据也会自动写回返......
  • Go 快速入门指南 - defer 函数
    概述一个 ​​defer​​ 语句就是一个普通的函数或方法调用。 ​​defer​​ 语句保证了不论是在正常情况下(return返回),还是非正常情况下(发生错误,程序终止),函数......
  • Go 快速入门指南 - panic/recover 函数
    panic​​panic​​​ 会终止程序并退出,因此只有在发生严重的错误时才会使用 ​​panic​​。例子主动触发packagemainfuncmain(){panic("someerror...")}//$go......
  • Go 快速入门指南 - 函数
    概述​​函数​​ 是将一个或者一类问题包装为一个代码块,可以被多次调用,提高代码重用性。Go函数中声明、定义、参数、返回值这些基础概念,和其他编程语言中的一致,这里不再......
  • Go 快速入门指南 - init 函数
    概述​​init()函数​​ 是一个特殊的函数,一般称为初始化函数,不能被调用。 在每个文件里面,当程序启动或者文件被作为包引用的时候,init()函数就会自动执行,一般用来做一......
  • C语言函数递归解决汉诺塔问题代码演示(带详细注释)
    //1.汉诺塔问题/*  1个盘子:A->C1  2个盘子:A->BA->CB->C  3个盘子:A->CA->BC->BA->CB->AB->CA->C*/////voidmove(charpos1,charpos2)//{......
  • 相关函数: memcmp
    头文件 :#include<string.h>函数原型:intmemcpy(constvoid*s1, constvoid*s2, size_tn);函数说明:比较s1和s2所指向内存区域前n个字节返回值 :若完全相......
  • 相关函数: memcpy
    相关函数:memcpy头文件 :#include<string.h>函数原型:void*memcpy(void*dest, constvoid*src, size_tn);函数说明:拷贝src所指向的内存前n个字节到dest所......
  • 相关函数: strncat
    头文件 :#include<string.h>函数原型:char*strncat(char*dest, constchar*src, size_tn);函数说明:将参数str指向的字符串拷贝n个字符到参数dest所指向的字......
  • 相关函数: strncmp
    头文件 :#include<string.h>函数原型:intstrncmp(constchar*s1, constchar*s2, size_tn);函数说明:比较参数s1和s2所指向的字符串的前n个字符返回值 :若......