Posted to tcl by Napier at Mon Apr 13 17:24:05 GMT 2015view raw
- set fh [open "/proc/meminfo"]
- set mem [read $fh]
- close $fh
- if {$mem != ""} {
- set mem [split $mem \n]
- set complete 0
- foreach line $mem {
- if {[string match "*MemTotal*" $line]} {
- set memtotal [string trim [string map {"MemTotal:" "" "kB" ""} $line]]
- } elseif {[string match "*MemFree*" $line]} {
- set memfree [string trim [string map {"MemFree:" "" "kB" ""} $line]]
- } elseif {[string match "*Cached*" $line]} {
- set cached [string trim [string map {"Cached:" "" "kB" ""} $line]]
- } elseif {[string match "*Buffers*" $line]} {
- set buffers [string trim [string map {"Buffers:" "" "kB" ""} $line]]
- }
- if {[info exists memtotal] && [info exists memfree] && [info exists cached] && [info exists buffers]} {
- set complete 1
- break
- }
- }
- if {$complete == 1} {
- set mempct [expr {double(($memfree + $cached + $buffers)) / $memtotal}]
- puts $mempct
- }
- }