函数名: getcurdir 功 能: 取指定驱动器的当前目录 用 法: int getcurdir(int drive, char *direc); 程序例: <?xml:namespace prefix="o" ns="urn:schemas-microsoft-com:office:office"?>
#i nclude #i nclude #i nclude
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); 程序例:
#i nclude #i nclude
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); 程序例:
#i nclude #i nclude
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); 程序例:
#i nclude #i nclude #i nclude #i nclude
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<16; i++) { printf("colors[%d] = %d\n", i, pal->colors[i]); getch(); }
/* clean up */ getch(); closegraph(); return 0; }
函数名: getdisk 功 能: 取当前磁盘驱动器号 用 法: int getdisk(void); 程序例:
#i nclude #i nclude
int main(void) { int disk;
disk = getdisk() + 'A'; printf("The current drive is: %c\n", disk); return 0; }
函数名: getdrivername 功 能: 返回指向包含当前图形驱动程序名字的字符串指针 用 法: char *getdrivename(void); 程序例:
#i nclude #i nclude #i nclude #i nclude
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); 程序例:
#i nclude #i nclude
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); 程序例:
#i nclude #i nclude
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); 程序例:
#i nclude #i nclude
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); 程序例:
#i nclude #i nclude #i nclude #i nclude
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); 程序例:
#i nclude #i nclude #i nclude #i nclude
/ 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); 程序例:
#i nclude #i nclude
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); 程序例:
#i nclude #i nclude #i nclude #i nclude
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); 程序例:
#i nclude #i nclude
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); 程序例:
#i nclude #i nclude #i nclude #i nclude
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); 程序例:
#i nclude #i nclude #i nclude #i nclude #i nclude
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<=3; block++) { if ((buf[block] = farmalloc(size)) == NULL) { closegraph(); printf("Error: not enough heap space in save_screen().\n"); exit(1); }
getimage(0, ystart, maxx, yend, buf[block]); ystart = yend + 1; yend += yincr + 1; } }
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<=3; block++) { if ((buf[block] = farmalloc(size)) == NULL) { closegraph(); printf("Error: not enough heap space in save_screen().\n"); exit(1); }
getimage(0, ystart, maxx, yend, buf[block]); ystart = yend + 1; yend += yincr + 1; } }
void restore_screen(void far *buf[4]) { int ystart=0, yend, yincr, block;
yincr = (maxy+1) / 4; yend = yincr;
for (block=0; block<=3; block++) { putimage(0, ystart, buf[block], COPY_PUT); farfree(buf[block]); ystart = yend + 1; yend += yincr + 1; } }