⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 restoretextmode.c

📁 linux 下svgalib编的一个界面程序示例
💻 C
字号:
#include <stdlib.h>#include <stdio.h>#include <vga.h>#include "../src/driver.h"#include <errno.h>/* * Note: Observe that when writing the font to a file, the file to write is * opened after vga_init has been called (so that root permissions have been * given up). This means that there is no major security hole lurking here. */unsigned char regs[MAX_REGS];voidmain (int argc, char *argv[]){  vga_init ();  if (argc == 1)    {      printf ("Save/restore textmode registers.\n");      printf ("Syntax: restoretextmode option filename\n");      printf ("	-r filename	Restore registers from file.\n");      printf ("	-w filename	Write registers to file.\n");      exit (0);    }  if (argv[1][0] != '-')    {      printf ("Must specify -r or -w.\n");      exit (1);    }  switch (argv[1][1])    {    case 'r':    case 'w':      if (argc != 3)	{	  printf ("Must specify filename.\n");	  exit (1);	}      break;    default:      printf ("Invalid option. Must specify -r or -w.\n");      exit (1);    }  if (argv[1][1] == 'r')    {      FILE *f;      f = fopen (argv[2], "rb");      if (f == NULL)	{	error:	  perror ("restoretextmode");	  exit (1);	}      if (1 != fread (regs, MAX_REGS, 1, f))	{	  if (errno)	    goto error;	  puts ("restoretextmode: input file corrupted.");	  exit (1);	}      fclose (f);    }  vga_setmode (G640x350x16);  switch (argv[1][1])    {    case 'r':      vga_settextmoderegs (regs);      break;    case 'w':      vga_gettextmoderegs (regs);      break;    }  vga_setmode (TEXT);  if (argv[1][1] == 'w')    {      FILE *f;      f = fopen (argv[2], "wb");      if (f == NULL)	goto error;      if (1 != fwrite (regs, MAX_REGS, 1, f))	goto error;      if (fclose (f))	goto error;    }  exit (0);}

⌨️ 快捷键说明

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