如何在c侧获取系统空间

如何在c侧获取系统空间。

HarmonyOS
2024-09-19 11:21:46
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get

可以读取/proc/meminfo文件中的MemTotal的值去获取内存大小。

native侧:

static napi_value TotalDisk(napi_env env, napi_callback_info info) { 
  uint32_t size = loadSystemMemory::LoadSystemMemoryFunc(); 
  napi_value sum; 
  napi_create_int64(env, size, &sum); 
  return sum; 
}

loadSystemMemory.cpp

#include "loadSystemMemory.h" 
#include <cstdio> 
#include <cstdlib> 
#include <cstring> 
   
uint32_t loadSystemMemory::LoadSystemMemoryFunc() { 
  FILE *fp = fopen("/proc/meminfo", "r"); 
  if (fp == NULL) { 
    return 0; 
  } 
   
  char line[1024]; 
  long total_memory = 0; 
   
  while (fgets(line, sizeof(line), fp)) { 
    if (strncmp(line, "MemTotal:", 9) == 0) { 
      char *end; 
      total_memory = strtol(line + 9, &end, 10) / (1024 * 1024); // 假设单位是kB,转换为GB 
      break; 
    } 
  }   
  fclose(fp); 
  return total_memory; 
}

loadSystemMemory.h

#include <cstdint> 
 
class loadSystemMemory { 
  public: 
    static uint32_t LoadSystemMemoryFunc(); 
};

ArkTS侧:

import testNapi from 'libentry.so'; 
 
let size = testNapi.totalDisk(); 
console.log("内存大小为" + size + "GB")
分享
微博
QQ
微信
回复
2024-09-19 17:13:59
相关问题
如何在Native获取APP版本信息
2222浏览 • 1回复 待解决
如何C++层面获取系统时间?
4322浏览 • 2回复 待解决
如何在Native释放ArkTS对象
2260浏览 • 1回复 待解决
如何在C/C++ 创建ArkTS的对象
2088浏览 • 1回复 待解决
java如何获取手机存储空间大小
6539浏览 • 1回复 待解决
AVPlayer实现音频播放(c++
1151浏览 • 1回复 待解决
获取设备总存储空间和可用存储空间
1830浏览 • 0回复 待解决
如何在Native构建一个ArkTS对象
2029浏览 • 1回复 待解决
如何在C++项目中使用pthread
1880浏览 • 1回复 待解决
如何在IDE中运行c语言的helloworld?
3036浏览 • 1回复 待解决