近几年经典好听的歌:请高手指点一段程序~

来源:百度文库 编辑:高校问答 时间:2024/04/29 09:58:39
#include "stdio.h"
main()
{ char cmos[64];FILE *fp;int i;
for (i=0;i<64;i++)
{ outportb(0x70,i);
cmos[i]=inportb(0x71);
}
fp=fopen("A:\CMOS.DAT","wb");
fwrite(&cmos[0],1,64,fp);
fclose(fp);
请高手详细解释一下这段程序的含义,谢谢~~

这是一个写文件的程序,不详细注释了,只说说关键地方

outportb(0x70,i);
outportb是写函数,把i的值输出到内存地址0x70
cmos[i]=inportb(0x71);
inportb是读函数,把0x71的内存地址的数值读取到cmos[i]里

fp=fopen("A:\CMOS.DAT","wb");
在 A 盘下创建文件CMOS.DAT,类型为写入
fwrite(&cmos[0],1,64,fp);
将整个cmos数组中的数据输出到文件CMOS.DAT
然后使用fclose(fp);关闭文件指针。

这个小程序是将电脑CMOS中的数据读取出来,并保存到文件CMOS.DAT中 0x70是CMOS数据地址的开始。

好久都没弄过了
大概能想起来点

char cmos[64]定义字符型数组

FILE *fp;int i; 定义文件指针

for (i=0;i<64;i++)
{ outportb(0x70,i); 给数组赋初始值
cmos[i]=inportb(0x71);
}

fp=fopen("A:\CMOS.DAT","wb"); 打开文件

fwrite(&cmos[0],1,64,fp); 文件写入

fclose(fp); 关闭文件