`
wangleide414
  • 浏览: 590408 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

Linux C语言常用函数 03

 
阅读更多

 

函数名: gcvt 

功 能把浮点数转换成字符串 

用 法: char *gcvt(double value, int ndigit, char *buf); 

程序例

#include ; 

#include ; 

int main(void) 

char str[25]; 

double num; 

int sig = 5; /* significant digits */ 

/* a regular number */ 

num = 9.876; 

gcvt(num, sig, str); 

printf("string = %s\n", str); 

/* a negative number */ 

num = -123.4567; 

gcvt(num, sig, str); 

printf("string = %s\n", str); 

/* scientific notation */ 

num = 0.678e5; 

gcvt(num, sig, str); 

printf("string = %s\n", str); 

return(0); 

函数名: geninterrupt 

功 能产生一个软中断 

用 法: void geninterrupt(int intr_num); 

程序例

#include ; 

#include ; 

/* function prototype */ 

void writechar(char ch); 

int main(void) 

clrscr(); 

gotoxy(80,25); 

writechar('*'); 

getch(); 

return 0; 

/* 

outputs a character at the current cursor 

position using the video BIOS to avoid the 

scrolling of the screen when writing to 

location (80,25). 

*/ 

void writechar(char ch) 

struct text_info ti; 

/* grab current text settings */ 

gettextinfo(&ti); 

/* interrupt 0x10 sub-function 9 */ 

_AH = 9; 

/* character to be output */ 

_AL = ch; 

_BH = 0; /* video page */ 

_BL = ti.attribute; /* video attribute */ 

_CX = 1; /* repetition factor */ 

geninterrupt(0x10); /* output the char */ 

函数名: getarccoords 

功 能取得最后一次调用arc的坐标 

用 法: void far getarccoords(struct arccoordstype far *arccoords); 

程序例

#include ; 

#include ; 

#include ; 

#include ; 

int main(void) 

/* request auto detection */ 

int gdriver = DETECT, gmode, errorcode; 

struct arccoordstype arcinfo; 

int midx, midy; 

int stangle = 45, endangle = 270; 

char sstr[80], estr[80]; 

/* initialize graphics and local variables */ 

initgraph(&gdriver, &gmode, ""); 

/* read result of initialization */ 

errorcode = graphresult(); 

/* an error occurred */ 

if (errorcode != grOk) 

printf("Graphics error: %s\n", 

grapherrormsg(errorcode)); 

printf("Press any key to halt:"); 

getch(); 

/* terminate with an error code */ 

exit(1); 

midx = getmaxx() / 2; 

midy = getmaxy() / 2; 

/* draw arc and get coordinates */ 

setcolor(getmaxcolor()); 

arc(midx, midy, stangle, endangle, 100); 

getarccoords(&arcinfo); 

/* convert arc information into strings */ 

sprintf(sstr, "*- (%d, %d)", 

arcinfo.xstart, arcinfo.ystart); 

sprintf(estr, "*- (%d, %d)", 

arcinfo.xend, arcinfo.yend); 

/* output the arc information */ 

outtextxy(arcinfo.xstart, 

arcinfo.ystart, sstr); 

outtextxy(arcinfo.xend, 

arcinfo.yend, estr); 

/* clean up */ 

getch(); 

closegraph(); 

return 0; 

函数名: getaspectratio 

功 能返回当前图形模式的纵横比 

用 法: void far getaspectratio(int far *xasp, int far *yasp); 

程序例

#include ; 

#include ; 

#include ; 

#include ; 

int main(void) 

/* request auto detection */ 

int gdriver = DETECT, gmode, errorcode; 

int xasp, yasp, midx, midy; 

/* initialize graphics and local variables */ 

initgraph(&gdriver, &gmode, ""); 

/* read result of initialization */ 

errorcode = graphresult(); 

/* an error occurred */ 

if (errorcode != grOk) 

printf("Graphics error: %s\n", 

grapherrormsg(errorcode)); 

printf("Press any key to halt:"); 

getch(); 

/* terminate with an error code */ 

exit(1); 

midx = getmaxx() / 2; 

midy = getmaxy() / 2; 

setcolor(getmaxcolor()); 

/* get current aspect ratio settings */ 

getaspectratio(&xasp, &yasp); 

/* draw normal circle */ 

circle(midx, midy, 100); 

getch(); 

/* draw wide circle */ 

cleardevice(); 

setaspectratio(xasp/2, yasp); 

circle(midx, midy, 100); 

getch(); 

/* draw narrow circle */ 

cleardevice(); 

setaspectratio(xasp, yasp/2); 

circle(midx, midy, 100); 

/* clean up */ 

getch(); 

closegraph(); 

return 0; 

函数名: getbkcolor 

功 能返回当前背景颜色 

用 法: int far getbkcolor(void); 

程序例

#include ; 

#include ; 

#include ; 

#include ; 

#include ; 

int main(void) 

/* request auto detection */ 

int gdriver = DETECT, gmode, errorcode; 

int bkcolor, midx, midy; 

char bkname[35]; 

/* initialize graphics and local variables */ 

initgraph(&gdriver, &gmode, ""); 

/* read result of initialization */ 

errorcode = graphresult(); 

/* an error occurred */ 

if (errorcode != grOk) 

printf("Graphics error: %s\n", 

grapherrormsg(errorcode)); 

printf("Press any key to halt:"); 

getch(); 

/* terminate with an error code */ 

exit(1); 

midx = getmaxx() / 2; 

midy = getmaxy() / 2; 

setcolor(getmaxcolor()); 

/* for centering text on the display */ 

settextjustify(CENTER_TEXT, CENTER_TEXT); 

/* get the current background color */ 

bkcolor = getbkcolor(); 

/* convert color value into a string */ 

itoa(bkcolor, bkname, 10); 

strcat(bkname, 

" is the current background color."); 

/* display a message */ 

outtextxy(midx, midy, bkname); 

/* clean up */ 

getch(); 

closegraph(); 

return 0; 

函数名: getc 

功 能从流中取字符 

用 法: int getc(FILE *stream); 

程序例

#include ; 

int main(void) 

char ch; 

printf("Input a character:"); 

/* read a character from the 

standard input stream */ 

ch = getc(stdin); 

printf("The character input was: '%c'\n", 

ch); 

return 0; 

函数名: getcbrk 

功 能获取Control_break设置 

用 法: int getcbrk(void); 

程序例

#include ; 

#include ; 

int main(void) 

if (getcbrk()) 

printf("Cntrl-brk flag is on\n"); 

else 

printf("Cntrl-brk flag is off\n"); 

return 0; 

函数名: getch 

功 能从控制台无回显地取一个字符 

用 法: int getch(void); 

程序例

#include ; 

#include ; 

int main(void) 

char ch; 

printf("Input a character:"); 

ch = getche(); 

printf("\nYou input a '%c'\n", ch); 

return 0; 

函数名: getchar 

功 能stdin流中读字符 

用 法: int getchar(void); 

程序例

#include ; 

int main(void) 

int c; 

/* Note that getchar reads from stdin and 

is line buffered; this means it will 

not return until you press ENTER. */ 

while ((c = getchar()) != '\n') 

printf("%c", c); 

return 0; 

函数名: getche 

功 能从控制台取字符(带回显

用 法: int getche(void); 

程序例

#include ; 

#include ; 

int main(void) 

char ch; 

printf("Input a character:"); 

ch = getche(); 

printf("\nYou input a '%c'\n", ch); 

return 0; 

函数名: getcolor 

功 能返回当前画线颜色 

用 法: int far getcolor(void); 

程序例

#include ; 

#include ; 

#include ; 

#include ; 

#include ; 

int main(void) 

/* request auto detection */ 

int gdriver = DETECT, gmode, errorcode; 

int color, midx, midy; 

char colname[35]; 

/* initialize graphics and local variables */ 

initgraph(&gdriver, &gmode, ""); 

/* read result of initialization */ 

errorcode = graphresult(); 

/* an error occurred */ 

if (errorcode != grOk) 

printf("Graphics error: %s\n", 

grapherrormsg(errorcode)); 

printf("Press any key to halt:"); 

getch(); 

/* terminate with an error code */ 

exit(1); 

midx = getmaxx() / 2; 

midy = getmaxy() / 2; 

setcolor(getmaxcolor()); 

/* for centering text on the display */ 

settextjustify(CENTER_TEXT, CENTER_TEXT); 

/* get the current drawing color */ 

color = getcolor(); 

/* convert color value into a string */ 

itoa(color, colname, 10); 

strcat(colname, 

" is the current drawing color."); 

/* display a message */ 

outtextxy(midx, midy, colname); 

/* clean up */ 

getch(); 

closegraph(); 

return 0; 

函数名: getcurdir 

功 能取指定驱动器的当前目录 

用 法: int getcurdir(int drive, char *direc); 

程序例

#include ; 

#include ; 

#include ; 

char *current_directory(char *path) 

strcpy(path, "X:\\"); /* fill string with form of response: X:\ */ 

path[0] = 'A' + getdisk(); /* replace X with current drive letter */ 

getcurdir(0, path+3); /* fill rest of string with current directory */ 

return(path); 

int main(void) 

char curdir[MAXPATH]; 

current_directory(curdir); 

printf("The current directory is %s\n", curdir); 

return 0; 

函数名: getcwd 

功 能取当前工作目录 

用 法: char *getcwd(char *buf, int n); 

程序例

#include ; 

#include ; 

int main(void) 

char buffer[MAXPATH]; 

getcwd(buffer, MAXPATH); 

printf("The current directory is: %s\n", buffer); 

return 0; 

函数名: getdate 

功 能DOS日期 

用 法: void getdate(struct *dateblk); 

程序例

#include ; 

#include ; 

int main(void) 

struct date d; 

getdate(&d); 

printf("The current year is: %d\n", 

d.da_year); 

printf("The current day is: %d\n", 

d.da_day); 

printf("The current month is: %d\n", 

d.da_mon); 

return 0; 

函数名: getdefaultpalette 

功 能返回调色板定义结构 

用 法: struct palettetype *far getdefaultpalette(void); 

程序例

#include ; 

#include ; 

#include ; 

#include ; 

int main(void) 

/* request auto detection */ 

int gdriver = DETECT, gmode, errorcode; 

int i; 

/* structure for returning palette copy */ 

struct palettetype far *pal=(void *) 0; 

/* initialize graphics and local variables */ 

initgraph(&gdriver, &gmode, ""); 

/* read result of initialization */ 

errorcode = graphresult(); 

/* an error occurred */ 

if (errorcode != grOk) 

printf("Graphics error: %s\n", 

grapherrormsg(errorcode)); 

printf("Press any key to halt:"); 

getch(); 

/* terminate with an error code */ 

exit(1); 

setcolor(getmaxcolor()); 

/* return a pointer to the default palette */ 

pal = getdefaultpalette(); 

for (i=0; i;colors); 

getch(); 

/* clean up */ 

getch(); 

closegraph(); 

return 0; 

函数名: getdisk 

功 能取当前磁盘驱动器号 

用 法: int getdisk(void); 

程序例

#include ; 

#include ; 

int main(void) 

int disk; 

disk = getdisk() + 'A'; 

printf("The current drive is: %c\n", 

disk); 

return 0; 

函数名: getdrivername 

功 能返回指向包含当前图形驱动程序名字的字符串指针 

用 法: char *getdrivename(void); 

程序例

#include ; 

#include ; 

#include ; 

#include ; 

int main(void) 

/* request auto detection */ 

int gdriver = DETECT, gmode, errorcode; 

/* stores the device driver name */ 

char *drivername; 

/* initialize graphics and local variables */ 

initgraph(&gdriver, &gmode, ""); 

/* read result of initialization */ 

errorcode = graphresult(); 

/* an error occurred */ 

if (errorcode != grOk) 

printf("Graphics error: %s\n", 

grapherrormsg(errorcode)); 

printf("Press any key to halt:"); 

getch(); 

/* terminate with an error code */ 

exit(1); 

setcolor(getmaxcolor()); 

/* get name of the device driver in use */ 

drivername = getdrivername(); 

/* for centering text on the screen */ 

settextjustify(CENTER_TEXT, CENTER_TEXT); 

/* output the name of the driver */ 

outtextxy(getmaxx() / 2, getmaxy() / 2, 

drivername); 

/* clean up */ 

getch(); 

closegraph(); 

return 0; 

函数名: getdta 

功 能取磁盘传输地址 

用 法: char far *getdta(void); 

程序例

#include ; 

#include ; 

int main(void) 

char far *dta; 

dta = getdta(); 

printf("The current disk transfer \ 

address is: %Fp\n", dta); 

return 0; 

函数名: getenv 

功 能从环境中取字符串 

用 法: char *getenv(char *envvar); 

程序例

#include ; 

#include ; 

int main(void) 

char *s; 

s=getenv("COMSPEC"); /* get the comspec environment parameter */ 

printf("Command processor: %s\n",s); /* display comspec parameter */ 

return 0; 

函数名: getfat, getfatd 

功 能取文件分配表信息 

用 法: void getfat(int drive, struct fatinfo *fatblkp); 

程序例

#include ; 

#include ; 

int main(void) 

struct fatinfo diskinfo; 

int flag = 0; 

printf("Please insert disk in drive A\n"); 

getchar(); 

getfat(1, &diskinfo); 

/* get drive information */ 

printf("\nDrive A: is "); 

switch((unsigned char) diskinfo.fi_fatid) 

case 0xFD: 

printf("360K low density\n"); 

break; 

case 0xF9: 

printf("1.2 Meg high density\n"); 

break; 

default: 

printf("unformatted\n"); 

flag = 1; 

if (!flag) 

printf(" sectors per cluster %5d\n", 

diskinfo.fi_sclus); 

printf(" number of clusters %5d\n", 

diskinfo.fi_nclus); 

printf(" bytes per sector %5d\n", 

diskinfo.fi_bysec); 

return 0; 

函数名: getfillpattern 

功 能将用户定义的填充模式拷贝到内存中 

用 法: void far getfillpattern(char far *upattern); 

程序例

#include ; 

#include ; 

#include ; 

#include ; 

int main(void) 

/* request auto detection */ 

int gdriver = DETECT, gmode, errorcode; 

int maxx, maxy; 

char pattern[8] = {0x00, 0x70, 0x20, 0x27, 0x25, 0x27, 0x04, 0x04}; 

/* initialize graphics and local variables */ 

initgraph(&gdriver, &gmode, ""); 

/* read result of initialization */ 

errorcode = graphresult(); 

if (errorcode != grOk) /* an error occurred */ 

printf("Graphics error: %s\n", grapherrormsg(errorcode)); 

printf("Press any key to halt:"); 

getch(); 

exit(1); /* terminate with an error code */ 

maxx = getmaxx(); 

maxy = getmaxy(); 

setcolor(getmaxcolor()); 

/* select a user defined fill pattern */ 

setfillpattern(pattern, getmaxcolor()); 

/* fill the screen with the pattern */ 

bar(0, 0, maxx, maxy); 

getch(); 

/* get the current user defined fill pattern */ 

getfillpattern(pattern); 

/* alter the pattern we grabbed */ 

pattern[4] -= 1; 

pattern[5] -= 3; 

pattern[6] += 3; 

pattern[7] -= 4; 

/* select our new pattern */ 

setfillpattern(pattern, getmaxcolor()); 

/* fill the screen with the new pattern */ 

bar(0, 0, maxx, maxy); 

/* clean up */ 

getch(); 

closegraph(); 

return 0; 

函数名: getfillsettings 

功 能取得有关当前填充模式和填充颜色的信息 

用 法: void far getfillsettings(struct fillsettingstype far *fillinfo); 

程序例

#include ; 

#include ; 

#include ; 

#include ; 

/ the names of the fill styles supported */ 

char *fname[] = { "EMPTY_FILL", 

"SOLID_FILL", 

"LINE_FILL", 

"LTSLASH_FILL", 

"SLASH_FILL", 

"BKSLASH_FILL", 

"LTBKSLASH_FILL", 

"HATCH_FILL", 

"XHATCH_FILL", 

"INTERLEAVE_FILL", 

"WIDE_DOT_FILL", 

"CLOSE_DOT_FILL", 

"USER_FILL" 

}; 

int main(void) 

/* request auto detection */ 

int gdriver = DETECT, gmode, errorcode; 

struct fillsettingstype fillinfo; 

int midx, midy; 

char patstr[40], colstr[40]; 

/* initialize graphics and local variables */ 

initgraph(&gdriver, &gmode, ""); 

/* read result of initialization */ 

errorcode = graphresult(); 

if (errorcode != grOk) /* an error occurred */ 

printf("Graphics error: %s\n", grapherrormsg(errorcode)); 

printf("Press any key to halt:"); 

getch(); 

exit(1); /* terminate with an error code */ 

midx = getmaxx() / 2; 

midy = getmaxy() / 2; 

/* get information about current fill pattern and color */ 

getfillsettings(&fillinfo); 

/* convert fill information into strings */ 

sprintf(patstr, "%s is the fill style.", fname[fillinfo.pattern]); 

sprintf(colstr, "%d is the fill color.", fillinfo.color); 

/* display the information */ 

settextjustify(CENTER_TEXT, CENTER_TEXT); 

outtextxy(midx, midy, patstr); 

outtextxy(midx, midy+2*textheight("W"), colstr); 

/* clean up */ 

getch(); 

closegraph(); 

return 0; 

函数名: getftime 

功 能取文件日期和时间 

用 法: int getftime(int handle, struct ftime *ftimep); 

程序例

#include ; 

#include ; 

int main(void) 

FILE *stream; 

struct ftime ft; 

if ((stream = fopen("TEST.$$$", 

"wt")) == NULL) 

fprintf(stderr, 

"Cannot open output file.\n"); 

return 1; 

getftime(fileno(stream), &ft); 

printf("File time: %u:%u:%u\n", 

ft.ft_hour, ft.ft_min, 

ft.ft_tsec * 2); 

printf("File date: %u/%u/%u\n", 

ft.ft_month, ft.ft_day, 

ft.ft_year+1980); 

fclose(stream); 

return 0; 

函数名: getgraphmode 

功 能返回当前图形模式 

用 法: int far getgraphmode(void); 

程序例

#include ; 

#include ; 

#include ; 

#include ; 

int main(void) 

/* request auto detection */ 

int gdriver = DETECT, gmode, errorcode; 

int midx, midy, mode; 

char numname[80], modename[80]; 

/* initialize graphics and local variables */ 

initgraph(&gdriver, &gmode, ""); 

/* read result of initialization */ 

errorcode = graphresult(); 

/* an error occurred */ 

if (errorcode != grOk) 

printf("Graphics error: %s\n", 

grapherrormsg(errorcode)); 

printf("Press any key to halt:"); 

getch(); 

/* terminate with an error code */ 

exit(1); 

midx = getmaxx() / 2; 

midy = getmaxy() / 2; 

/* get mode number and name strings */ 

mode = getgraphmode(); 

sprintf(numname, 

"%d is the current mode number.", 

mode); 

sprintf(modename, 

"%s is the current graphics mode", 

getmodename(mode)); 

/* display the information */ 

settextjustify(CENTER_TEXT, CENTER_TEXT); 

outtextxy(midx, midy, numname); 

outtextxy(midx, midy+2*textheight("W"), 

modename); 

/* clean up */ 

getch(); 

closegraph(); 

return 0; 

函数名: getftime 

功 能取文件日期和时间 

用 法: int getftime(int handle, struct ftime *ftimep); 

程序例

#include ; 

#include ; 

int main(void) 

FILE *stream; 

struct ftime ft; 

if ((stream = fopen("TEST.$$$", 

"wt")) == NULL) 

fprintf(stderr, 

"Cannot open output file.\n"); 

return 1; 

getftime(fileno(stream), &ft); 

printf("File time: %u:%u:%u\n", 

ft.ft_hour, ft.ft_min, 

ft.ft_tsec * 2); 

printf("File date: %u/%u/%u\n", 

ft.ft_month, ft.ft_day, 

ft.ft_year+1980); 

fclose(stream); 

return 0; 

函数名: getgraphmode 

功 能返回当前图形模式 

用 法: int far getgraphmode(void); 

程序例

#include ; 

#include ; 

#include ; 

#include ; 

int main(void) 

/* request auto detection */ 

int gdriver = DETECT, gmode, errorcode; 

int midx, midy, mode; 

char numname[80], modename[80]; 

/* initialize graphics and local variables */ 

initgraph(&gdriver, &gmode, ""); 

/* read result of initialization */ 

errorcode = graphresult(); 

/* an error occurred */ 

if (errorcode != grOk) 

printf("Graphics error: %s\n", 

grapherrormsg(errorcode)); 

printf("Press any key to halt:"); 

getch(); 

/* terminate with an error code */ 

exit(1); 

midx = getmaxx() / 2; 

midy = getmaxy() / 2; 

/* get mode number and name strings */ 

mode = getgraphmode(); 

sprintf(numname, 

"%d is the current mode number.", 

mode); 

sprintf(modename, 

"%s is the current graphics mode", 

getmodename(mode)); 

/* display the information */ 

settextjustify(CENTER_TEXT, CENTER_TEXT); 

outtextxy(midx, midy, numname); 

outtextxy(midx, midy+2*textheight("W"), 

modename); 

/* clean up */ 

getch(); 

closegraph(); 

return 0; 

函数名: getimage 

功 能将指定区域的一个位图存到主存中 

用 法: void far getimage(int left, int top, int right, int bottom, 

void far *bitmap); 

程序例

#include ; 

#include ; 

#include ; 

#include ; 

#include ; 

void save_screen(void far *buf[4]); 

void restore_screen(void far *buf[4]); 

int maxx, maxy; 

int main(void) 

int gdriver=DETECT, gmode, errorcode; 

void far *ptr[4]; 

/* auto-detect the graphics driver and mode */ 

initgraph(&gdriver, &gmode, ""); 

errorcode = graphresult(); /* check for any errors */ 

if (errorcode != grOk) 

printf("Graphics error: %s\n", grapherrormsg(errorcode)); 

printf("Press any key to halt:"); 

getch(); 

exit(1); 

maxx = getmaxx(); 

maxy = getmaxy(); 

/* draw an image on the screen */ 

rectangle(0, 0, maxx, maxy); 

line(0, 0, maxx, maxy); 

line(0, maxy, maxx, 0); 

save_screen(ptr); /* save the current screen */ 

getch(); /* pause screen */ 

cleardevice(); /* clear screen */ 

restore_screen(ptr); /* restore the screen */ 

getch(); /* pause screen */ 

closegraph(); 

return 0; 

void save_screen(void far *buf[4]) 

unsigned size; 

int ystart=0, yend, yincr, block; 

yincr = (maxy+1) / 4; 

yend = yincr; 

size = imagesize(0, ystart, maxx, yend); /* get byte size of image */ 

for (block=0; block函数名: getlinesettings 

功 能取当前线型、模式和宽度 

用 法: void far getlinesettings(struct linesettingstype far *lininfo): 

程序例

#include ; 

#include ; 

#include ; 

#include ; 

/* the names of the line styles supported */ 

char *lname[] = { "SOLID_LINE", 

"DOTTED_LINE", 

"CENTER_LINE", 

"DASHED_LINE", 

"USERBIT_LINE" 

}; 

int main(void) 

/* request auto detection */ 

int gdriver = DETECT, gmode, errorcode; 

struct linesettingstype lineinfo; 

int midx, midy; 

char lstyle[80], lpattern[80], lwidth[80]; 

/* initialize graphics and local variables */ 

initgraph(&gdriver, &gmode, ""); 

/* read result of initialization */ 

errorcode = graphresult(); 

if (errorcode != grOk) /* an error occurred */ 

printf("Graphics error: %s\n", grapherrormsg(errorcode)); 

printf("Press any key to halt:"); 

getch(); 

exit(1); /* terminate with an error code */ 

midx = getmaxx() / 2; 

midy = getmaxy() / 2; 

/* get information about current line settings */ 

getlinesettings(&lineinfo); 

/* convert line information into strings */ 

sprintf(lstyle, "%s is the line style.", 

lname[lineinfo.linestyle]); 

sprintf(lpattern, "0x%X is the user-defined line pattern.", 

lineinfo.upattern); 

sprintf(lwidth, "%d is the line thickness.", 

lineinfo.thickness); 

/* display the information */ 

settextjustify(CENTER_TEXT, CENTER_TEXT); 

outtextxy(midx, midy, lstyle); 

outtextxy(midx, midy+2*textheight("W"), lpattern); 

outtextxy(midx, midy+4*textheight("W"), lwidth); 

/* clean up */ 

getch(); 

closegraph(); 

return 0; 

函数名: getmaxcolor 

功 能返回可以传给函数setcolor的最大颜色值 

用 法: int far getmaxcolor(void); 

程序例

#include ; 

#include ; 

#include ; 

#include ; 

int main(void) 

/* request auto detection */ 

int gdriver = DETECT, gmode, errorcode; 

int midx, midy; 

char colstr[80]; 

/* initialize graphics and local variables 

*/ initgraph(&gdriver, &gmode, ""); 

/* read result of initialization */ 

errorcode = graphresult(); 

if (errorcode != grOk) /* an error occurred */ 

printf("Graphics error: %s\n", grapherrormsg(errorcode)); 

printf("Press any key to halt:"); 

getch(); 

exit(1); /* terminate with an error code */ 

midx = getmaxx() / 2; 

midy = getmaxy() / 2; 

/* grab the color info. and convert it to a string */ 

sprintf(colstr, "This mode supports colors 0..%d", getmaxcolor()); 

/* display the information */ 

settextjustify(CENTER_TEXT, CENTER_TEXT); 

outtextxy(midx, midy, colstr); 

/* clean up */ 

getch(); 

closegraph(); 

return 0; 

函数名: getmaxx 

功 能返回屏幕的最大x坐标 

用 法: int far getmaxx(void); 

程序例

#include ; 

#include ; 

#include ; 

#include ; 

int main(void) 

/* request auto detection */ 

int gdriver = DETECT, gmode, errorcode; 

int midx, midy; 

char xrange[80], yrange[80]; 

/* initialize graphics and local variables */ 

initgraph(&gdriver, &gmode, ""); 

/* read result of initialization */ 

errorcode = graphresult(); 

if (errorcode != grOk) /* an error occurred */ 

printf("Graphics error: %s\n", grapherrormsg(errorcode)); 

printf("Press any key to halt:"); 

getch(); 

exit(1); /* terminate with an error code */ 

midx = getmaxx() / 2; 

midy = getmaxy() / 2; 

/* convert max resolution values into strings */ 

sprintf(xrange, "X values range from 0..%d", getmaxx()); 

sprintf(yrange, "Y values range from 0..%d", getmaxy()); 

/* display the information */ 

settextjustify(CENTER_TEXT, CENTER_TEXT); 

outtextxy(midx, midy, xrange); 

outtextxy(midx, midy+textheight("W"), yrange); 

/* clean up */ 

getch(); 

closegraph(); 

return 0; 

CODE:

[Copy to clipboard]

函数名: getmaxy 

功 能返回屏幕的最大y坐标 

用 法: int far getmaxy(void); 

程序例

#include ; 

#include ; 

#include ; 

#include ; 

int main(void) 

/* request auto detection */ 

int gdriver = DETECT, gmode, errorcode; 

int midx, midy; 

char xrange[80], yrange[80]; 

/* initialize graphics and local variables */ 

initgraph(&gdriver, &gmode, ""); 

/* read result of initialization */ 

errorcode = graphresult(); 

if (errorcode != grOk) /* an error occurred */ 

printf("Graphics error: %s\n", grapherrormsg(errorcode)); 

printf("Press any key to halt:"); 

getch(); 

exit(1); /* terminate with an error code */ 

midx = getmaxx() / 2; 

midy = getmaxy() / 2; 

/* convert max resolution values into strings */ 

sprintf(xrange, "X values range from 0..%d", getmaxx()); 

sprintf(yrange, "Y values range from 0..%d", getmaxy()); 

/* display the information */ 

settextjustify(CENTER_TEXT, CENTER_TEXT); 

outtextxy(midx, midy, xrange); 

outtextxy(midx, midy+textheight("W"), yrange); 

/* clean up */ 

getch(); 

closegraph(); 

return 0; 

函数名: getmodename 

功 能返回含有指定图形模式名的字符串指针 

用 法: char *far getmodename(int mode_name); 

程序例

#include ; 

#include ; 

#include ; 

#include ; 

int main(void) 

/* request autodetection */ 

int gdriver = DETECT, gmode, errorcode; 

int midx, midy, mode; 

char numname[80], modename[80]; 

/* initialize graphics and local variables */ 

initgraph(&gdriver, &gmode, ""); 

/* read result of initialization */ 

errorcode = graphresult(); 

if (errorcode != grOk) /* an error occurred */ 

printf("Graphics error: %s\n", grapherrormsg(errorcode)); 

printf("Press any key to halt:"); 

getch(); 

exit(1); /* terminate with an error code */ 

midx = getmaxx() / 2; 

midy = getmaxy() / 2; 

/* get mode number and name strings */ 

mode = getgraphmode(); 

sprintf(numname, "%d is the current mode number.", mode); 

sprintf(modename, "%s is the current graphics mode.", getmodename(mode)); 

/* display the information */ 

settextjustify(CENTER_TEXT, CENTER_TEXT); 

outtextxy(midx, midy, numname); 

outtextxy(midx, midy+2*textheight("W"), modename); 

/* clean up */ 

getch(); 

closegraph(); 

return 0; 

函数名: getmoderange 

功 能取给定图形驱动程序的模式范围 

用 法: void far getmoderange(int graphdriver, int far *lomode, 

int far *himode); 

程序例

#include ; 

#include ; 

#include ; 

#include ; 

int main(void) 

/* request auto detection */ 

int gdriver = DETECT, gmode, errorcode; 

int midx, midy; 

int low, high; 

char mrange[80]; 

/* initialize graphics and local variables */ 

initgraph(&gdriver, &gmode, ""); 

/* read result of initialization */ 

errorcode = graphresult(); 

if (errorcode != grOk) /* an error occurred */ 

printf("Graphics error: %s\n", grapherrormsg(errorcode)); 

printf("Press any key to halt:"); 

getch(); 

exit(1); /* terminate with an error code */ 

midx = getmaxx() / 2; 

midy = getmaxy() / 2; 

/* get the mode range for this driver */ 

getmoderange(gdriver, &low, &high); 

/* convert mode range info. into strings */ 

sprintf(mrange, "This driver supports modes %d..%d", low, high); 

/* display the information */ 

settextjustify(CENTER_TEXT, CENTER_TEXT); 

outtextxy(midx, midy, mrange); 

/* clean up */ 

getch(); 

closegraph(); 

return 0; 

函数名: getpalette 

功 能返回有关当前调色板的信息 

用 法: void far getpalette(struct palettetype far *palette); 

程序例

#include ; 

#include ; 

#include ; 

#include ; 

int main(void) 

/* request auto detection */ 

int gdriver = DETECT, gmode, errorcode; 

struct palettetype pal; 

char psize[80], pval[20]; 

int i, ht; 

int y = 10; 

/* initialize graphics and local variables */ 

initgraph(&gdriver, &gmode, ""); 

/* read result of initialization */ 

errorcode = graphresult(); 

/* an error occurred */ 

if (errorcode != grOk) 

printf("Graphics error: %s\n", 

grapherrormsg(errorcode)); 

printf("Press any key to halt:"); 

getch(); 

/* terminate with an error code */ 

exit(1); 

/* grab a copy of the palette */ 

getpalette(&pal); 

/* convert palette info. into strings */ 

sprintf(psize, "The palette has %d \ 

modifiable entries.", pal.size); 

/* display the information */ 

outtextxy(0, y, psize); 

if (pal.size != 0) 

ht = textheight("W"); 

y += 2*ht; 

outtextxy(0, y, "Here are the current \ 

values:"); 

y += 2*ht; 

for (i=0; i函数名: getpass 

功 能读一个口令 

用 法: char *getpass(char *prompt); 

程序例

#include ; 

int main(void) 

char *password; 

password = getpass("Input a password:"); 

cprintf("The password is: %s\r\n", 

password); 

return 0; 

函数名: getpixel 

功 能取得指定像素的颜色 

用 法: int far getpixel(int x, int y); 

程序例

#include ; 

#include ; 

#include ; 

#include ; 

#include ; 

#define PIXEL_COUNT 1000 

#define DELAY_TIME 100 /* in milliseconds */ 

int main(void) 

/* request auto detection */ 

int gdriver = DETECT, gmode, errorcode; 

int i, x, y, color, maxx, maxy, 

maxcolor, seed; 

/* initialize graphics and local variables */ 

initgraph(&gdriver, &gmode, ""); 

/* read result of initialization */ 

errorcode = graphresult(); 

/* an error occurred */ 

if (errorcode != grOk) 

printf("Graphics error: %s\n", 

grapherrormsg(errorcode)); 

printf("Press any key to halt:"); 

getch(); 

/* terminate with an error code */ 

exit(1); 

maxx = getmaxx() + 1; 

maxy = getmaxy() + 1; 

maxcolor = getmaxcolor() + 1; 

while (!kbhit()) 

/* seed the random number generator */ 

seed = random(32767); 

srand(seed); 

for (i=0; i? ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;h;(;);;; ;e;t;p;s;p;(;););;; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;e;s;e;t; ;t;o; ;s;e;g;m;e;n;t; ;o;f; ;t;h;e; ;P;S;P; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;i;n;e; ;i;s; ;l;o;c;a;t;e;d; ;a;t; ;o;f;f;s;e;t; ;0;x;8;1; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;t; ;o;f; ;P;S;P; ; ; ; ; ; ; ; ; 

函数名: gets 

功 能从流中取一字符串 

用 法: char *gets(char *string); 

程序例

#include ; 

int main(void) 

char string[80]; 

printf("Input a string:"); 

gets(string); 

printf("The string input was: %s\n", 

string); 

return 0; 

函数名: gettext 

功 能将文本方式屏幕上的文本拷贝到存储区 

用 法: int gettext(int left, int top, int right, int bottom, void *destin); 

程序例

#include ; 

char buffer[4096]; 

int main(void) 

int i; 

clrscr(); 

for (i = 0; i 函数名: gettextinfo 

功 能取得文本模式的显示信息 

用 法: void gettextinfo(struct text_info *inforec); 

程序例

#include ; 

int main(void) 

struct text_info ti; 

gettextinfo(&ti); 

cprintf("window left %2d\r\n",ti.winleft); 

cprintf("window top %2d\r\n",ti.wintop); 

cprintf("window right %2d\r\n",ti.winright); 

cprintf("window bottom %2d\r\n",ti.winbottom); 

cprintf("attribute %2d\r\n",ti.attribute); 

cprintf("normal attribute %2d\r\n",ti.normattr); 

cprintf("current mode %2d\r\n",ti.currmode); 

cprintf("screen height %2d\r\n",ti.screenheight); 

cprintf("screen width %2d\r\n",ti.screenwidth); 

cprintf("current x %2d\r\n",ti.curx); 

cprintf("current y %2d\r\n",ti.cury); 

return 0; 

函数名: gettextsettings 

功 能返回有关当前图形文本字体的信息 

用 法: void far gettextsettings(struct textsettingstype far *textinfo); 

程序例

#include ; 

#include ; 

#include ; 

#include ; 

/* the names of the fonts supported */ 

char *font[] = { "DEFAULT_FONT", 

"TRIPLEX_FONT", 

"SMALL_FONT", 

"SANS_SERIF_FONT", 

"GOTHIC_FONT" 

}; 

/* the names of the text directions supported */ 

char *dir[] = { "HORIZ_DIR", "VERT_DIR" }; 

/* horizontal text justifications supported */ 

char *hjust[] = { "LEFT_TEXT", "CENTER_TEXT", "RIGHT_TEXT" }; 

/* vertical text justifications supported */ 

char *vjust[] = { "BOTTOM_TEXT", "CENTER_TEXT", "TOP_TEXT" }; 

int main(void) 

/* request auto detection */ 

int gdriver = DETECT, gmode, errorcode; 

struct textsettingstype textinfo; 

int midx, midy, ht; 

char fontstr[80], dirstr[80], sizestr[80]; 

char hjuststr[80], vjuststr[80]; 

/* initialize graphics and local variables */ 

initgraph(&gdriver, &gmode, ""); 

/* read result of initialization */ 

errorcode = graphresult(); 

if (errorcode != grOk) /* an error occurred */ 

printf("Graphics error: %s\n", grapherrormsg(errorcode)); 

printf("Press any key to halt:"); 

getch(); 

exit(1); /* terminate with an error code */ 

midx = getmaxx() / 2; 

midy = getmaxy() / 2; 

/* get information about current text settings */ 

gettextsettings(&textinfo); 

/* convert text information into strings */ 

sprintf(fontstr, "%s is the text style.", font[textinfo.font]); 

sprintf(dirstr, "%s is the text direction.", dir[textinfo.direction]); 

sprintf(sizestr, "%d is the text size.", textinfo.charsize); 

sprintf(hjuststr, "%s is the horizontal justification.", 

hjust[textinfo.horiz]); 

sprintf(vjuststr, "%s is the vertical justification.", 

vjust[textinfo.vert]); 

/* display the information */ 

ht = textheight("W"); 

settextjustify(CENTER_TEXT, CENTER_TEXT); 

outtextxy(midx, midy, fontstr); 

outtextxy(midx, midy+2*ht, dirstr); 

outtextxy(midx, midy+4*ht, sizestr); 

outtextxy(midx, midy+6*ht, hjuststr); 

outtextxy(midx, midy+8*ht, vjuststr); 

/* clean up */ 

getch(); 

closegraph(); 

return 0; 

函数名: gettime 

功 能取得系统时间 

用 法: void gettime(struct time *timep); 

程序例

#include ; 

#include ; 

int main(void) 

struct time t; 

gettime(&t); 

printf("The current time is: %2d:%02d:%02d.%02d\n", 

t.ti_hour, t.ti_min, t.ti_sec, t.ti_hund); 

return 0; 

函数名: getvect 

功 能取得中断向量入口 

用 法: void interrupt(*getvect(int intr_num)); 

程序例

#include ; 

#include ; 

void interrupt get_out(); /* interrupt prototype */ 

void interrupt (*oldfunc)(); /* interrupt function pointer */ 

int looping = 1; 

int main(void) 

puts("Press ;; to terminate"); 

/* save the old interrupt */ 

oldfunc = getvect(5); 

/* install interrupt handler */ 

setvect(5,get_out); 

/* do nothing */ 

while (looping); 

/* restore to original interrupt routine */ 

setvect(5,oldfunc); 

puts("Success"); 

return 0; 

void interrupt get_out() 

looping = 0; /* change global variable to get out of loop */ 

函数名: getverify 

功 能返回DOS校验标志状态 

用 法: int getverify(void); 

程序例

#include ; 

#include ; 

int main(void) 

if (getverify()) 

printf("DOS verify flag is on\n"); 

else 

printf("DOS verify flag is off\n"); 

return 0; 

函数名: getviewsetting 

功 能返回有关当前视区的信息 

用 法: void far getviewsettings(struct viewporttype far *viewport); 

程序例

#include ; 

#include ; 

#include ; 

#include ; 

char *clip[] = { "OFF", "ON" }; 

int main(void) 

/* request auto detection */ 

int gdriver = DETECT, gmode, errorcode; 

struct viewporttype viewinfo; 

int midx, midy, ht; 

char topstr[80], botstr[80], clipstr[80]; 

/* initialize graphics and local variables */ 

initgraph(&gdriver, &gmode, ""); 

/* read result of initialization */ 

errorcode = graphresult(); 

if (errorcode != grOk) /* an error occurred */ 

printf("Graphics error: %s\n", grapherrormsg(errorcode)); 

printf("Press any key to halt:"); 

getch(); 

exit(1); /* terminate with an error code */ 

midx = getmaxx() / 2; 

midy = getmaxy() / 2; 

/* get information about current viewport */ 

getviewsettings(&viewinfo); 

/* convert text information into strings */ 

sprintf(topstr, "(%d, %d) is the upper left viewport corner.", 

viewinfo.left, viewinfo.top); 

sprintf(botstr, "(%d, %d) is the lower right viewport corner.", 

viewinfo.right, viewinfo.bottom); 

sprintf(clipstr, "Clipping is turned %s.", clip[viewinfo.clip]); 

/* display the information */ 

settextjustify(CENTER_TEXT, CENTER_TEXT); 

ht = textheight("W"); 

outtextxy(midx, midy, topstr); 

outtextxy(midx, midy+2*ht, botstr); 

outtextxy(midx, midy+4*ht, clipstr); 

/* clean up */ 

getch(); 

closegraph(); 

return 0; 

函数名: getw 

功 能从流中取一整数 

用 法: int getw(FILE *strem); 

程序例

#include ; 

#include ; 

#define FNAME "test.$$$" 

int main(void) 

FILE *fp; 

int word; 

/* place the word in a file */ 

fp = fopen(FNAME, "wb"); 

if (fp == NULL) 

printf("Error opening file %s\n", FNAME); 

exit(1); 

word = 94; 

putw(word,fp); 

if (ferror(fp)) 

printf("Error writing to file\n"); 

else 

printf("Successful write\n"); 

fclose(fp); 

/* reopen the file */ 

fp = fopen(FNAME, "rb"); 

if (fp == NULL) 

printf("Error opening file %s\n", FNAME); 

exit(1); 

/* extract the word */ 

word = getw(fp); 

if (ferror(fp)) 

printf("Error reading file\n"); 

else 

printf("Successful read: word = %d\n", word); 

/* clean up */ 

fclose(fp); 

unlink(FNAME); 

return 0; 

函数名: getx 

功 能返回当前图形位置的x坐标 

用 法: int far getx(void); 

程序例

#include ; 

#include ; 

#include ; 

#include ; 

int main(void) 

/* request auto detection */ 

int gdriver = DETECT, gmode, errorcode; 

char msg[80]; 

/* initialize graphics and local variables */ 

initgraph(&gdriver, &gmode, ""); 

/* read result of initialization */ 

errorcode = graphresult(); 

if (errorcode != grOk) /* an error occurred */ 

printf("Graphics error: %s\n", grapherrormsg(errorcode)); 

printf("Press any key to halt:"); 

getch(); 

exit(1); /* terminate with an error code */ 

/* move to the screen center point */ 

moveto(getmaxx() / 2, getmaxy() / 2); 

/* create a message string */ 

sprintf(msg, "函数名: gety 

功 能返回当前图形位置的y坐标 

用 法: int far gety(void); 

程序例

#include ; 

#include ; 

#include ; 

#include ; 

int main(void) 

/* request auto detection */ 

int gdriver = DETECT, gmode, errorcode; 

char msg[80]; 

/* initialize graphics and local variables */ 

initgraph(&gdriver, &gmode, ""); 

/* read result of initialization */ 

errorcode = graphresult(); 

if (errorcode != grOk) /* an error occurred */ 

printf("Graphics error: %s\n", grapherrormsg(errorcode)); 

printf("Press any key to halt:"); 

getch(); 

exit(1); /* terminate with an error code */ 

/* move to the screen center point */ 

moveto(getmaxx() / 2, getmaxy() / 2); 

/* create a message string */ 

sprintf(msg, "函数名: gmtime 

功 能把日期和时间转换为格林尼治标准时间(GMT) 

用 法: struct tm *gmtime(long *clock); 

程序例

#include ; 

#include ; 

#include ; 

#include ; 

/* Pacific Standard Time & Daylight Savings */ 

char *tzstr = "TZ=PST8PDT"; 

int main(void) 

time_t t; 

struct tm *gmt, *area; 

putenv(tzstr); 

tzset(); 

t = time(NULL); 

area = localtime(&t); 

printf("Local time is: %s", asctime(area)); 

gmt = gmtime(&t); 

printf("GMT is: %s", asctime(gmt)); 

return 0; 

函数名: gotoxy 

功 能在文本窗口中设置光标 

用 法: void gotoxy(int x, int y); 

程序例

#include ; 

int main(void) 

clrscr(); 

gotoxy(35, 12); 

cprintf("Hello world"); 

getch(); 

return 0; 

函数名: gotoxy 

功 能在文本窗口中设置光标 

用 法: void gotoxy(int x, int y); 

程序例

#include ; 

int main(void) 

clrscr(); 

gotoxy(35, 12); 

cprintf("Hello world"); 

getch(); 

return 0; 

函数名: graphdefaults 

功 能将所有图形设置复位为它们的缺省值 

用 法: void far graphdefaults(void); 

程序例

#include ; 

#include ; 

#include ; 

#include ; 

int main(void) 

/* request auto detection */ 

int gdriver = DETECT, gmode, errorcode; 

int maxx, maxy; 

/* initialize graphics and local variables */ 

initgraph(&gdriver, &gmode, "c:\\bor\\Borland\\bgi"); 

/* read result of initialization */ 

errorcode = graphresult(); 

if (errorcode != grOk) /* an error occurred */ 

printf("Graphics error: %s\n", grapherrormsg(errorcode)); 

printf("Press any key to halt:"); 

getch(); 

exit(1); /* terminate with an error code */ 

maxx = getmaxx(); 

maxy = getmaxy(); 

/* output line with non-default settings */ 

setlinestyle(DOTTED_LINE, 0, 3); 

line(0, 0, maxx, maxy); 

outtextxy(maxx/2, maxy/3, "Before default values are restored."); 

getch(); 

/* restore default values for everything */ 

graphdefaults(); 

/* clear the screen */ 

cleardevice(); 

/* output line with default settings */ 

line(0, 0, maxx, maxy); 

outtextxy(maxx/2, maxy/3, "After restoring default values."); 

/* clean up */ 

getch(); 

closegraph(); 

return 0; 

函数名: grapherrormsg 

功 能返回一个错误信息串的指针 

用 法: char *far grapherrormsg(int errorcode); 

程序例

#include ; 

#include ; 

#include ; 

#include ; 

#define NONSENSE -50 

int main(void) 

/* FORCE AN ERROR TO OCCUR */ 

int gdriver = NONSENSE, gmode, errorcode; 

/* initialize graphics mode */ 

initgraph(&gdriver, &gmode, ""); 

/* read result of initialization */ 

errorcode = graphresult(); 

/* if an error occurred, then output a */ 

/* descriptive error message. */ 

if (errorcode != grOk) 

printf("Graphics error: %s\n", grapherrormsg(errorcode)); 

printf("Press any key to halt:"); 

getch(); 

exit(1); /* terminate with an error code */ 

/* draw a line */ 

line(0, 0, getmaxx(), getmaxy()); 

/* clean up */ 

getch(); 

closegraph(); 

return 0; 

函数名: graphresult 

功 能返回最后一次不成功的图形操作的错误代码 

用 法: int far graphresult(void); 

程序例

#include ; 

#include ; 

#include ; 

#include ; 

int main(void) 

/* request auto detection */ 

int gdriver = DETECT, gmode, errorcode; 

/* initialize graphics and local variables */ 

initgraph(&gdriver, &gmode, ""); 

/* read result of initialization */ 

errorcode = graphresult(); 

if (errorcode != grOk) /* an error occurred */ 

printf("Graphics error: %s\n", grapherrormsg(errorcode)); 

printf("Press any key to halt:"); 

getch(); 

exit(1); /* terminate with an error code */ 

/* draw a line */ 

line(0, 0, getmaxx(), getmaxy()); 

/* clean up */ 

getch(); 

closegraph(); 

return 0; 

函数名: _graphfreemem 

功 能用户可修改的图形存储区释放函数 

用 法: void far _graphfreemem(void far *ptr, unsigned size); 

程序例

#include ; 

#include ; 

#include ; 

#include ; 

#include ; 

int main(void) 

/* request auto detection */ 

int gdriver = DETECT, gmode, errorcode; 

int midx, midy; 

/* clear the text screen */ 

clrscr(); 

printf("Press any key to initialize graphics mode:"); 

getch(); 

clrscr(); 

/* initialize graphics and local variables */ 

initgraph(&gdriver, &gmode, ""); 

/* read result of initialization */ 

errorcode = graphresult(); 

if (errorcode != grOk) /* an error occurred */ 

printf("Graphics error: %s\n", grapherrormsg(errorcode)); 

printf("Press any key to halt:"); 

getch(); 

exit(1); /* terminate with an error code */ 

midx = getmaxx() / 2; 

midy = getmaxy() / 2; 

/* display a message */ 

settextjustify(CENTER_TEXT, CENTER_TEXT); 

outtextxy(midx, midy, "Press any key to exit graphics mode:"); 

/* clean up */ 

getch(); 

closegraph(); 

return 0; 

/* called by the graphics kernel to allocate memory */ 

void far * far _graphgetmem(unsigned size) 

printf("_graphgetmem called to allocate %d bytes.\n", size); 

printf("hit any key:"); 

getch(); 

printf("\n"); 

/* allocate memory from far heap */ 

return farmalloc(size); 

/* called by the graphics kernel to free memory */ 

void far _graphfreemem(void far *ptr, unsigned size) 

printf("_graphfreemem called to free %d bytes.\n", size); 

printf("hit any key:"); 

getch(); 

printf("\n"); 

/* free ptr from far heap */ 

farfree(ptr); 

}

 

CODE:

 

[Copy to clipboard]

 

函数名: harderr  

功  能建立一个硬件错误处理程序  

用  法: void harderr(int (*fptr)());  

程序例:  

/*This program will trap disk errors and prompt  

the user for action. Try running it with no  

disk in drive A: to invoke its functions.*/  

#include ;  

#include ;  

#include ;  

#define IGNORE  0  

#define RETRY   1  

#define ABORT   2  

int buf[500];  

/*define the error messages for trapping disk problems*/  

static char *err_msg[] = {  

    "write protect",  

    "unknown unit",  

    "drive not ready",  

    "unknown command",  

    "data error (CRC)",  

    "bad request",  

    "seek error",  

    "unknown media type",  

    "sector not found",  

    "printer out of paper",  

    "write fault",  

    "read fault",  

    "general failure",  

    "reserved",  

    "reserved",  

    "invalid disk change"  

};  

error_win(char *msg)  

{  

   int retval;  

   cputs(msg);  

/*prompt for user to press a key to abort, retry, ignore*/  

   while(1)  

   {  

       retval= getch();  

       if (retval == 'a' || retval == 'A')  

       {  

    retval = ABORT;  

    break;  

       }  

       if (retval == 'r' || retval == 'R')  

       {  

    retval = RETRY;  

    break;  

       }  

       if (retval == 'i' || retval == 'I')  

       {  

           retval = IGNORE;  

           break;  

       }  

   }  

   return(retval);  

}  

/*pragma warn -par reduces warnings which occur  

due to the non use of the parameters errval,  

bp and si to the handler.*/  

#pragma warn -par  

int handler(int errval,int ax,int bp,int si)  

{  

   static char msg[80];  

   unsigned di;  

   int drive;  

   int errorno;  

   di= _DI;  

/*if this is not a disk error then it was  

another device having trouble*/  

   if (ax 函数名: hardresume  

功  能硬件错误处理函数  

用  法: void hardresume(int rescode);  

程序例:  

   

/* This program will trap disk errors and prompt the user for action. */  

/* Try running it with no disk in drive A: to invoke its functions    */  

#include ;  

#include ;  

#include ;  

#define IGNORE  0  

#define RETRY   1  

#define ABORT   2  

int buf[500];  

/* define the error messages for trapping disk problems */  

static char *err_msg[] = {  

    "write protect",  

    "unknown unit",  

    "drive not ready",  

    "unknown command",  

    "data error (CRC)",  

    "bad request",  

    "seek error",  

    "unknown media type",  

    "sector not found",  

    "printer out of paper",  

    "write fault",  

    "read fault",  

    "general failure",  

    "reserved",  

    "reserved",  

    "invalid disk change"  

};  

error_win(char *msg)  

{  

   int retval;  

   cputs(msg);  

/* prompt for user to press a key to abort, retry, ignore */  

   while(1)  

   {  

       retval= getch();  

       if (retval == 'a' || retval == 'A')  

       {  

           retval = ABORT;  

           break;  

       }  

       if (retval == 'r' || retval == 'R')  

       {  

           retval = RETRY;  

           break;  

       }  

       if (retval == 'i' || retval == 'I')  

       {  

           retval = IGNORE;  

           break;  

       }  

   }  

   return(retval);  

}  

/* pragma warn -par reduces warnings which occur due to the non use */  

/* of the parameters errval, bp and si to the handler.              */  

#pragma warn -par  

int handler(int errval,int ax,int bp,int si)  

{  

   static char msg[80];  

   unsigned di;  

   int drive;  

   int errorno;  

   di= _DI;  

/* if this is not a disk error then it was another device having trouble */  

   if (ax 函数名: highvideo  

功  能选择高亮度文本字符  

用  法: void highvideo(void);  

程序例:  

#include ;  

int main(void)  

{  

   clrscr();  

   lowvideo();  

   cprintf("Low Intensity text\r\n");  

   highvideo();  

   gotoxy(1,2);  

   cprintf("High Intensity Text\r\n");  

   return 0;  

}  

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics