|
|
|
|
 有什么函数可以获取当前swap空间情况 - gyihlq [ 2005-01-26 15:21 | 95 byte(s)]
 Re: 有什么函数可以获取当前swap空间情况 - suowei1979 [ 2005-01-26 15:39 | 8 byte(s)]
 Re: 有什么函数可以获取当前swap空间情况 - gyihlq [ 2005-01-26 15:50 | 68 byte(s)]
 Re: 有什么函数可以获取当前swap空间情况 - suowei1979 [ 2005-01-26 17:25 | 40 byte(s)]
 Re: 有什么函数可以获取当前swap空间情况 - gyihlq [ 2005-01-27 10:05 | 235 byte(s)]
 Re: 有什么函数可以获取当前swap空间情况 - Atu [ 2005-01-27 13:13 | 1,373 byte(s)]
 Re: 有什么函数可以获取当前swap空间情况 - gyihlq [ 2005-01-27 16:59 | 163 byte(s)]
 Re: 有什么函数可以获取当前swap空间情况 - gyihlq [ 2005-01-27 17:27 | 43 byte(s)]
 Re: 有什么函数可以获取当前swap空间情况 - Atu [ 2005-01-27 19:28 | 286 byte(s)]
 Re: 有什么函数可以获取当前swap空间情况 - LockTime [ 2005-01-28 09:33 | 197 byte(s)]
|
|
|
|
[Original]
[Print]
[Top]
|
|
查了一下,exec好像是在shell中使用的,不适合。而system只是能在程序中转到shell执行,却没办法把执行结果输出到指定串或数值类型变量。我怎么用呢?而且因为是在服务程序中进行检查,效率也是必需考虑的因素。这种程序中执行shell的方式似乎并不可取吧
|
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
man exec 看到的是shell中的内部命令exec
你应该用man 3 exec查看C函数库中的exec命令,
或者用man execl查看execl相关的命令;
system不能获得程序执行结果,
但是popen命令却可以,man popen
但是这样你的程序将依赖于free的输出格式
其实,如果你先看看free是怎么做的,它只是读了/proc/meminfo
$ cat /proc/meminfo
MemTotal: 90100 kB
MemFree: 66436 kB
Buffers: 2748 kB
Cached: 14580 kB
SwapCached: 0 kB
Active: 11692 kB
Inactive: 7172 kB
HighTotal: 0 kB
HighFree: 0 kB
LowTotal: 90100 kB
LowFree: 66436 kB
SwapTotal: 200772 kB
SwapFree: 200772 kB
Dirty: 144 kB
Writeback: 0 kB
Mapped: 3824 kB
Slab: 3764 kB
Committed_AS: 2276 kB
PageTables: 192 kB
VmallocTotal: 942004 kB
VmallocUsed: 576 kB
VmallocChunk: 941368 kB
当然,这样的程序会依赖于操作系统;
如果你使用的是其他的操作系统,可能有不同的方法。
是依赖于系统平台,还是依赖于free的输出内容,
就由你自己来决定了
|
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
|
感谢老大,我终于明白怎么在程序中写了。但还有一个问题:meminfo文件刷新机制是怎么样的,如果每次mem变化时都要刷新是不是会影响效率?还有就是有什么办法让meminfo失效吗?
|
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
/proc是内核提供的一个接口
所以,它的效率应该是没有问题的,至少比真实的磁盘文件系统要高得多;
当然,如果你“忙循环”的话,也是不成的
就是说这样的方式
while ( 1 )
{
read("/proc/...");
}
|
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
/proc 下的文件可写么?
我用 echo hostname>/proc/sys/kernel/hostname 或 在程序里用 puts
有的时候可以写进去有的时候就写不进去, 很奇怪!
|
|
|
----
珍惜时间,留住今天.
|
|
[Original]
[Print]
[Top]
|
|
|