플랫폼 독립적인 방식으로 사용 가능한 메모리 가져오기 C /g
허용 범위 내에서 시스템 메모리 가용성에 맞게 버퍼를 할당하려면 제한이 있으므로 사용 가능한 메모리를 결정하는 것이 중요합니다. 이러한 지식을 통해 시스템 용량을 초과하지 않고도 동적 할당 결정을 내릴 수 있습니다. 메모리 상태(가상 또는 물리적)는 큰 의미가 없을 수 있지만 이 정보를 얻는 것은 Windows, OS X, Linux 및 AIX 간의 교차 플랫폼 호환성을 위해 중요합니다.
UNIX 계열 운영 체제의 경우, sysconf 기능은 시스템 메모리 정보에 대한 액세스를 제공합니다. 사용 가능한 페이지 수(_SC_PHYS_PAGES)와 페이지 크기(_SC_PAGE_SIZE)를 검색하여 총 시스템 메모리를 계산할 수 있습니다.
#include <unistd.h> unsigned long long getTotalSystemMemory() { long pages = sysconf(_SC_PHYS_PAGES); long page_size = sysconf(_SC_PAGE_SIZE); return pages * page_size; }
Windows의 경우 GlobalMemoryStatusEx는 시스템 메모리 통계를 얻는 직접적인 방법을 제공합니다. 반환된 MEMORYSTATUSEX 구조에는 전체 시스템 메모리를 계산하는 데 사용할 수 있는 물리적 메모리 세부 정보가 포함되어 있습니다.
#include <windows.h> unsigned long long getTotalSystemMemory() { MEMORYSTATUSEX status; status.dwLength = sizeof(status); GlobalMemoryStatusEx(&status); return status.ullTotalPhys; }
#ifdef 또는 매크로를 통해 이러한 플랫폼별 구현을 결합하면 사용 가능한 메모리를 확인할 수 있습니다. 여러 시스템에 걸쳐 정보를 바탕으로 버퍼 할당 결정을 내립니다.
위 내용은 C를 사용하여 플랫폼 독립적인 방식으로 사용 가능한 시스템 메모리를 어떻게 얻을 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!