我写了一个在Ubuntu上完美工作的代码。但在QNX上获得意想不到的行为。如何使用c程序从QNX获取内存信息?
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <unistd.h>
int main(void)
{
printf("Total Memory = %ld MB\n",
(sysconf(_SC_PHYS_PAGES)* sysconf(_SC_PAGESIZE))/1048576);
printf("Getting available memory...\n");
printf("Available = %ld MB\n",
(sysconf(_SC_AVPHYS_PAGES)* sysconf(_SC_PAGESIZE))/1048576);
printf("Getting used memory...\n");
printf("Used Memory = %ld MB\n",((sysconf(_SC_PHYS_PAGES) -
sysconf(_SC_AVPHYS_PAGES))* sysconf(_SC_PAGESIZE))/1048576);
return EXIT_SUCCESS;
}
这在Ubuntu上可以很好地工作,但不能在QNX上工作。 有没有什么不同的方式来做到这一点?
输出:
Total Memory = - 3906 MB
Available = - 3096 MB
Used Memory = 0 MB
什么意外的行为?添加问题描述。 – LPs
@ Lps更新。 3906实际上是页面大小。 –
@sourav戈什不确定。 –