<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } -->
试验 1 :使用 proc 文件系统:读 /proc/stat 文件,计算并显示系统 CPU 占用率 和用户态 CPU 占用率。(需要使用 fopen() , fscanf() , printf() )
实验步骤:
-
使用 man 命令了解 /proc/stat 文件的内容和格式:
man proc
2 )使用 man 命令了解下列函数的使用方法:
fopen :
原型: FILE *fopen( const char *filename, const char *mode );
以打开一个流 ( 文件 ) 。 filename—— 文件名, mode—— 访问许可类型。
fscanf :
原型: int fscanf( FILE *stream, const char *format [, argument ]... );
从流中读取格式化的数据。
例子 fscanf (fp ,"cpu %ld", &user) 是指跳过字符串 "cpu " 及其前面的字符流,读取一个长整数并存入 user 中。其中 fp 为文件流指针。 %ld 对应长整数, %d 对应整数, %s 对应字符串。
fclose :
原型: int fclose( FILE *stream );
关闭流 ( 文件 ) 。
3 )用 c 语言编程
总CPU 时间 = 用户占用时间+ 系统占用时间+ 优先进程占用时间+ 闲置进程占用时间
系统CPU 占用率 = 系统占用时间 / 总CPU 时间
用户态 CPU 占用率 = 用户占用时间 / 总CPU 时间
4 )编译和运行