在Linux中,文件/proc/stat包含有一些内核活动的信息,可以用于计算当前CPU的利用率,在Erlang中读取这个文件的时候,貌似会有BUG~~用 file:read_file(”/proc/stat”) 读取时,会返回 {ok, <<>>}, file:read_file_info( “/proc/stat” ) 返回的结果也显示这个文件的长度为0,但实际上该文件是包含有如下内容的:
cpu 106096 168 115084 978940 8645 103 45 0 0
cpu0 48808 167 52695 491647 4067 0 1 0 0
cpu1 57287 0 62389 487293 4578 103 44 0 0
intr 250924 173 8268 0 0 2 0 0 0 3 2 0 0 202794 0 0 0 16 30469 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9196 0
ctxt 6219766
btime 1223983699
processes 6441
procs_running 1
procs_blocked 0
最后发现要这样才能正常读取该文件的内容:
> {ok,Device}=file:open("/proc/stat",[read]).
{ok,<0.34.0>}
> file:read(Device,1024).
{ok,"cpu 106005 …"}
0 意見