内存

    良好的内存管理对于提高软件性能和可靠性有着十分重要的意义。

    针对用户态开发,OpenHarmony内存提供了一套内存系统调用接口,支持内存的申请释放、重映射、内存属性的设置等,还有C库的标准内存操作函数。

    表 1 标准C库相关接口

    差异接口详细说明:

    • mmap

      函数原型:

      void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset);

      函数功能:申请虚拟内存。

      参数说明:

      返回值:

      • 成功返回:虚拟内存地址,这地址是页对齐。
      • 失败返回:(void *)-1。
    • 函数原型:

      int munmap(void *addr, size_t length);

      函数功能:释放虚拟内存。

      参数说明:

      返回值:

      • 成功返回0。
      • 失败返回-1。
    • mprotect接口

      函数原型:

      int mprotect(void *addr, size_t length, int prot);

      函数功能:修改内存段的访问权限。

      参数说明:

      返回值:

      • 成功返回0。
      • 失败返回-1。
    • mremap接口

      函数原型:

      void *mremap(void *old_address, size_t old_size, size_t new_size, int flags, void new_address);

      函数功能:重新映射虚拟内存地址。

      参数说明:

      • 成功返回:重新映射后的虚拟内存地址。