Как написать программу на c ++, используя системный вызов linux, который выдает информацию о свободной памяти, используемой памяти, версии ядра?

0

В системе Linux, используя программу C++, мне нужно найти способ распечатать следующую информацию:

  1. Объем используемой памяти.
  2. Количество свободной памяти
  3. Версия ядра Linux.

Может ли кто-нибудь помочь мне в том, как добиться этого?

Спасибо.

  • 0
    Вы могли бы использовать standard c вместо c++ ?
  • 0
    может ли это быть полезным? stackoverflow.com/questions/13883606/...
Показать ещё 1 комментарий
Теги:

1 ответ

3

Вы можете использовать файловую систему proc (5) (она специфична для Linux). Вы можете читать последовательно /proc/meminfo и /proc/version (эти псевдо файлы должны читаться последовательно, и они бывают быстрыми, не включая любой диск IO). Вы также можете использовать uname (2) для версии ядра.

Если вы хотите запросить о виртуальной памяти для своего собственного процесса, используйте /proc/self/maps

Если вам нужна информация, связанная с malloc (3), используйте malloc_info (3), mallinfo (3), malloc_stats (3) ,...

Комментарий mlwn также упоминает правильно sysconf (3)

См. Также linuxatemyram. И прочитайте Advanced Linux Programming

Можно ограничить используемую (или доступную) память, см. Этот ответ. Используйте getrlimit (2), чтобы запросить ограничения ресурсов.

PS.Ваше упоминание о количестве используемой памяти очень неоднозначно !Обратите внимание также, что системные вызовы (2) не совпадают с системой (3)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню