当前位置: 技术问答>linux和unix
关于C语言和SHELL合作的一个问题
来源: 互联网 发布时间:2015-06-11
本文导语: 我想把CPU使用情况绘制成图表(每个15s取一次),现在的想法是使用SHELL的sar -u 15 命令查询CPU在最近15秒内使用情况,并把此数据传入一个文件中,然后再用C语言每隔15s打开一次此文件,跳过一些字符取出需要的数...
我想把CPU使用情况绘制成图表(每个15s取一次),现在的想法是使用SHELL的sar -u 15 命令查询CPU在最近15秒内使用情况,并把此数据传入一个文件中,然后再用C语言每隔15s打开一次此文件,跳过一些字符取出需要的数据,然后再在图表上绘制该点!
这样做感觉很麻烦,还需要一个额外的文件用做存储,请问一下C语言可不可以直接调用SHELL语句,调用之后如何可以取到需要的数据?或者有没有什么更好的办法,请各位大哥赐教!小弟先谢过了!
这样做感觉很麻烦,还需要一个额外的文件用做存储,请问一下C语言可不可以直接调用SHELL语句,调用之后如何可以取到需要的数据?或者有没有什么更好的办法,请各位大哥赐教!小弟先谢过了!
|
我想用管道可能更合适,写一个程序,从标准输入读取需要的数据,在图表上绘制。
在实际用的时候,把sar的命令通过管道输出到你的程序中。
在实际用的时候,把sar的命令通过管道输出到你的程序中。
|
sar的输出可以先用grep,awk等东西过滤。
在c中,可以用system调用吧。
在c中,可以用system调用吧。
|
这个简单,用 popen() 函数可以把shell的输出和当前c的输入连接起来。
然后用fgets和fputs来读返回的FILE*
具体你可以man popen来看
然后用fgets和fputs来读返回的FILE*
具体你可以man popen来看
|
top命令 ,然后管道(grep,awk等),不知道可不可以