LINUX.ORG.RU

Re: Kak uznat w C, skolko na kompe RAM?

cat /proc/meminfo

DronK ()

Re: Kak uznat w C, skolko na kompe RAM?

Да, но есть ли какой нибудь system call, потому что такой вариант например не пройдет в solaris.

спасибо.

anonymous ()

Re: Kak uznat w C, skolko na kompe RAM?

Так тебе всяко придется другую функцию писать для Solaris. Погляди исходники утилиты free, как там они /proc читают.

DronK ()

Re: Kak uznat w C, skolko na kompe RAM?

Ok, спасибо

anonymous ()

Re: Kak uznat w C, skolko na kompe RAM?

Такого сикола нет, потому что он в многопроцесных системах бессмысленен. Ну получил ты, что памяти сейчас свободно 100М, а на следущем тике соседний процесс это все съест. И что?

vodz ★★★★★ ()

Re: Kak uznat w C, skolko na kompe RAM?

Net, wot glawnaja zada4a bila w tom, shto bi uznat,
skolko woobshe RAM imeetsja, fizi4eski.

W Solarise ja nashel kak eto polu4it:
sysconf(_SC_PHYS_PAGES) * sysconf(_SC_PAGESIZE)
- ja imeju iskomii rezultat.
sysconf(_SC_AVPHYS_PAGES) * sysconf(_SC_PAGESIZE)
- skolko swobodno

w Linuxe dumaju budet tak she,
za4em eto nado? Nu naprimer takie tools kak top ispolzujut
imenno eto, ja tak dumaju.

Wot shto eshe menja o4en iteresujet, eto kak rabotajut
takie utility kak truss (w Linuxe drugoe nazwanie),
ona mne pokaziwaet wse syscalls, kotorie prozess wiziwaet,
o4en interesno!

Spasibo!

anonymous ()

Re: Kak uznat w C, skolko na kompe RAM?

Это про strace?

vodz ★★★★★ ()

Re: Kak uznat w C, skolko na kompe RAM?

Da!

Ja poprobowal zapustit truss (strace) na Solarise wot tak:

$truss truss uname -a 2>/dev/stdout | grep open

i ja uwidel,
.
.
open("/proc/26705/as", O_RDWR|O_EXCL)
open("/proc/26705/status", O_RDONLY)
open("/proc/26705/ctl", O_WRONLY)
open("/proc/26705/auxv", O_RDONLY)
open("/proc/26705/cred", O_RDONLY)
open("/proc/26705/cred", O_RDONLY)
.
.
$

shto tool berejet kakuju to infu iz /proc, a
to4nee iz 'as':

$ file as
as: empty file

$ ls -l as
-rw------- 1 user7 users 1499136 Jul 30 07:25 as

$ man as
as - assembler

Wot gde bi moshno po4itat pro eto ?

Spasibo!

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.