Sobes.tech
Junior — Middle

Cum poate un programator să determine volumul de memorie RAM disponibil în sistem în timpul execuției programului?

sobes.tech AI

Răspuns de la AI

Определить объем доступной оперативной памяти во время выполнения программы можно разными способами, в зависимости от ОС.

Для Linux можно прочитать информацию из файла /proc/meminfo или использовать системные вызовы:

#include <sys/sysinfo.h>

struct sysinfo info;
if (sysinfo(&info) == 0) {
    unsigned long total_ram = info.totalram * info.mem_unit;
    unsigned long free_ram = info.freeram * info.mem_unit;
    // total_ram и free_ram в байтах
}

Для Windows можно использовать функцию GlobalMemoryStatusEx:

#include <windows.h>

MEMORYSTATUSEX statex;
statex.dwLength = sizeof(statex);
GlobalMemoryStatusEx(&statex);

DWORDLONG total_ram = statex.ullTotalPhys;
DWORDLONG free_ram = statex.ullAvailPhys;

Таким образом, программист может динамически получить информацию о доступной памяти и адаптировать поведение программы.