cmossav.cpp

来自「dos下cmos信息读取保存与恢复的源代码。」· C++ 代码 · 共 55 行

CPP
55
字号
#include "stdio.h"
#include "dos.h"

void main(int argc,char **argv) 

{
	char cmos[128];
	FILE *fp;
	int i; 
    unsigned char dat;

	if (argc<3)
	{
		printf("USEAGE:\n[Save a cmos information to a file]:\t  exename s savefile\n[Restore cmos information from a file]:\t  exename r savefile\n");
		return ;
	}
	for (i=0;i<128;i++) 
	{ 
		outportb(0x70,i); 
		cmos[i]=inportb(0x71); 
	}	
	if (argv[1][0]=='s')
	{//保存cmos
			fp=fopen(argv[2],"wb"); 
			if (fp==NULL)
			{
				printf("Create File Fail!\n");
				return ;
			}
			fwrite(&cmos[0],1,128,fp); 
			fclose(fp); 
			printf("Save complete!\n");
	}
	else
		if (argv[1][0]=='r')
		{//从文件恢复cmos
			if((fp=fopen(argv[2],"rb"))==NULL)
			{
				printf("Open File Fail!\n");
				return;
			}
		    for(int i=0;i<128;i++)
			{
				outportb(0x70,i);
				dat=fgetc(fp);
				if(feof(fp))
					{break ;}
				outportb(0x71,dat);
			}
			fclose(fp);
			printf("Restore complete!\n");
		}
} 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?