Home >Backend Development >C++ >How Can I Get Available System Memory in C /g Across Different Platforms?
Accessing Available Memory in C /g Across Multiple Platforms
Determining the available memory on a system is crucial for memory management tasks in computing. This article will guide you through platform-independent methods to retrieve available memory information using C /g .
Retrieving Available Memory
For UNIX-like operating systems, the sysconf() function provides information about system parameters, including physical memory. The following code snippet demonstrates how to obtain total physical memory using sysconf():
#include <unistd.h> unsigned long long getTotalSystemMemory() { long pages = sysconf(_SC_PHYS_PAGES); long page_size = sysconf(_SC_PAGE_SIZE); return pages * page_size; }
On Windows systems, the GlobalMemoryStatusEx() function can be used to retrieve various memory status information, including total physical memory. Here's the code:
#include <windows.h> unsigned long long getTotalSystemMemory() { MEMORYSTATUSEX status; status.dwLength = sizeof(status); GlobalMemoryStatusEx(&status); return status.ullTotalPhys; }
Platform-Independent Implementation
To make the code platform-independent, you can use conditional compilation:
#ifdef UNIX // Use sysconf() for UNIX-like systems #elif defined(WIN32) // Use GlobalMemoryStatusEx() for Windows #else // Handle other platforms if necessary #endif
By combining the two methods, you can seamlessly retrieve available memory across multiple platforms in your C /g applications.
The above is the detailed content of How Can I Get Available System Memory in C /g Across Different Platforms?. For more information, please follow other related articles on the PHP Chinese website!