Turbo C 2.0、Borland C++库函数及用例[A-M]

来源:互联网 发布:mac可用的画图软件 编辑:程序博客网 时间:2024/04/20 01:52

字母A开头函数
函数名: abort
功 能: 异常终止一个进程
用 法: void abort(void);
程序例:
#include <stdio.h>
#include <stdlib.h>int main(void)
{
printf("Calling abort()/n");
abort();
return 0; /* This is never reached */
}
函数名: abs
功 能: 求整数的绝对值
用 法: int abs(int i);
程序例:
#include <stdio.h>
#include <math.h>int main(void)
{
int number = -1234; printf("number:%d absolute value:%d/n",number,abs(number));
return 0;
}
函数名: absread
功 能: 绝对磁盘扇区读数据
用 法: int absread( int drive, int nsects, int sectno,
void *buffer );
程序例:
/* absread example */
#include <stdio.h>
#include <conio.h>
#include <process.h>
#include <dos.h>int main(void)
{
int i, strt, ch_out, sector;
char buf[512]; printf("Insert diskette into drive A press any key/n");
getch();
sector = 0;
if (absread(0, 1, sector, &buf) != 0)
{ perror("Disk problem");
exit(1); }
printf("Read OK/n");
strt = 3;
for (i=0; i<80; i++)
{ ch_out = buf[strt+i];
putchar(ch_out); }
printf("/n");
return(0); }
函数名: abswrite
功 能: 绝对磁盘扇区写数据
用 法: int abswrite( int drive, int nsects, in tsectno,
void *buffer);
程序例:
/* abswrite example */
#include <stdio.h>
#include <conio.h>
#include <process.h>
#include <dos.h>int main(void)
{ int i, strt, ch_out, sector;
char buf[512]; printf("Insert diskette into drive A press any key/n");
getch();
sector = 0;
if (absread(0, 1, sector, &buf) != 0)
{ perror("Disk problem");
exit(1); }
printf("Read OK/n");
strt = 3;
for (i=0; i<80; i++)
{ ch_out = buf[strt+i];
putchar(ch_out); }
printf("/n");
return(0);}
函数名: access
功 能: 确定文件的访问权限
用 法: int access(const char *filename, int amode);
程序例:
#include <stdio.h>
#include <io.h>int file_exists(char *filename);
int main(void)
{ printf("Does NOTEXIST.FIL exist: %s/n",
file_exists("NOTEXISTS.FIL") ? "YES" : "NO");
return 0;
}int file_exists(char *filename)
{
return (access(filename, 0) == 0);
}
函数名: acos
功 能: 反余弦函数
用 法: double acos(double x);
程序例:
#include <stdio.h>
#include <math.h>int main(void)
{ double result;
double x = 0.5;
result = acos(x);
printf("The arc cosine of %lf is %lf/n", x, result);
return 0;}
函数名: allocmem
功 能: 分配DOS存储段
用 法: int allocmem(unsigned size, unsigned *seg);
程序例:
#include <dos.h>
#include <alloc.h>
#include <stdio.h>int main(void)
{
unsigned int size, segp;
int stat;
size = 64; /* (64 x 16) = 1024 bytes */
stat = allocmem(size, &segp); if (stat == -1)
printf("Allocated memory at segment: %x/n", segp);
else
printf("Failed: maximum number of paragraphs available/
is %u/n", stat);
return 0;
}
函数名: arc
功 能: 画一弧线
用 法: void far arc( int x,int y,int stangle,int endangle,
int radius );
程序例:
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>int main(void)
{ /* request auto detection */
int gdriver = DETECT, gmode, errorcode;
int midx, midy; int stangle = 45, endangle = 135;
int radius = 100;
/* initialize graphics and local variables */
initgraph(&gdriver, &gmode, ""); /* read result of initialization */
errorcode = graphresult(); /* an error occurred */
if (errorcode != grOk)
{
printf("Graph err: %s/n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1); /* terminate with an error code */
} midx = getmaxx() / 2;
midy = getmaxy() / 2;
setcolor(getmaxcolor()); /* draw arc */
arc(midx, midy, stangle, endangle, radius); /* clean up */
getch();
closegraph();
return 0;
}
函数名: asctime
功 能: 转换日期和时间为ASCII码
用 法: char *asctime(const struct tm *tblock);
程序例:
#include <stdio.h>
#include <string.h>
#include <time.h>int main(void)
{
struct tm t;
char str[80]; /* sample loading of tm structure */
t.tm_sec = 1; /* Seconds */
t.tm_min = 30; /* Minutes */
t.tm_hour = 9; /* Hour */
t.tm_mday = 22; /* Day of the Month */
t.tm_mon = 11; /* Month */
t.tm_year = 56; /* Year - does not include century */
t.tm_wday = 4; /* Day of the week */
t.tm_yday = 0; /* Does not show in asctime */
t.tm_isdst = 0;
/* Is Daylight SavTime; does not show in asctime */
/* converts structure to null terminated
string */ strcpy(str, asctime(&t));
printf("%s/n", str);
return 0;
}
函数名: asin
功 能: 反正弦函数
用 法: double asin(double x);
程序例:
#include <stdio.h>
#include <math.h>int main(void)
{ double result;
double x = 0.5;
result = asin(x);
printf("The arc sin of %lf is %lf/n", x, result);
return(0);
}
函数名: assert
功 能: 测试一个条件并可能使程序终止
用 法: void assert(int test);
程序例:
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>struct ITEM {
int key;
int value;
};/* add item to list, make sure list is not null */
void additem(struct ITEM *itemptr) {
assert(itemptr != NULL);
}int main(void)
{
additem(NULL);
return 0;
}
函数名: atan
功 能: 反正切函数
用 法: double atan(double x);
程序例:
#include <stdio.h>
#include <math.h>
int main(void)
{ double result;
double x = 0.5;
result = atan(x);
printf("The arc tangent of %lf is %lf/n", x, result);
return(0);
}
函数名: atan2
功 能: 计算Y/X的反正切值
用 法: double atan2(double y, double x);
程序例:
#include <stdio.h>
#include <math.h>int main(void)
{ double result;
double x = 90.0, y = 45.0;
result = atan2(y, x);
printf("The arc tangent ratio of %lf is %lf/n/
", (y/x),result);
return 0;
}
函数名: atexit
功 能: 注册终止函数
用 法: int atexit(atexit_t func);
程序例:
#include <stdio.h>
#include <stdlib.h>void exit_fn1(void)
{ printf("Exit function #1 called/n");
}void exit_fn2(void)
{ printf("Exit function #2 called/n");
}int main(void)
{
/* post exit function #1 */
atexit(exit_fn1);
/* post exit function #2 */
atexit(exit_fn2);
return 0;
}
函数名: atof
功 能: 把字符串转换成浮点数
用 法: double atof(const char *nptr);
程序例:#include <stdlib.h>
#include <stdio.h>
int main(void)
{ float f;
char *str = "12345.67";
f = atof(str); printf("string = %s float = %f/n", str, f);
return 0;}
函数名: atoi
功 能: 把字符串转换成长整型数
用 法: int atoi(const char *nptr);
程序例:
#include <stdlib.h>
#include <stdio.h>int main(void)
{ int n;
char *str = "12345.67";
n = atoi(str);
printf("string = %s integer = %d/n", str, n);
return 0;
}
函数名: atol
功 能: 把字符串转换成长整型数
用 法: long atol(const char *nptr);
程序例:
#include <stdlib.h>
#include <stdio.h>int main(void)
{ long l;
char *str = "98765432";
l = atol(lstr);
printf("string = %s integer = %ld/n", str, l);
return(0);
}

字母B开头函数
函数名: bar
功 能: 画一个二维条形图
用 法: void far bar(int left,int top,int right,int bottom);
程序例:#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>int main(void)
{
/* request auto detection */
int gdriver = DETECT, gmode, errorcode;
int midx, midy, i; /* initialize graphics and local variables */
initgraph(&gdriver, &gmode, ""); /* read result of initialization */
errorcode = graphresult();
if (errorcode != grOk) /* an error occurred */
{
printf("Graph err: %s/n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1); /* terminate with an error code */
}
midx = getmaxx() / 2;
midy = getmaxy() / 2; /* loop through the fill patterns */
for (i=SOLID_FILL; i<USER_FILL; i++)
{
/* set the fill style */
setfillstyle(i, getmaxcolor()); /* draw the bar */
bar(midx-50, midy-50, midx+50,
midy+50);
getch();
}
closegraph();
return 0;
}
函数名: bar3d
功 能: 画一个三维条形图
用 法: void far bar3d( int left, int top, int right,
int bottom, int depth,
int topflag);
程序例:
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>int main(void)
{ /* request auto detection */
int gdriver = DETECT, gmode, errorcode;
int midx, midy, i; /* initialize graphics, local variables */
initgraph(&gdriver, &gmode, ""); /* read result of initialization */
errorcode = graphresult();
if (errorcode != grOk) /* an error occurred */
{
printf("Graph err: %s/n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1); /* terminate with error code */
} midx = getmaxx() / 2;
midy = getmaxy() / 2;
/* loop through the fill patterns */
for (i=EMPTY_FILL; i<USER_FILL; i++)
{
/* set the fill style */
setfillstyle(i, getmaxcolor());
/* draw the 3-d bar */
bar3d(midx-50, midy-50, midx+50, midy+50, 10, 1);
getch(); }
/* clean up */
closegraph();
return 0;
}
函数名: bdos
功 能: DOS系统调用
用 法: int bdos(int dosfun,unsigned dosdx,unsigned dosal);
程序例:#include <stdio.h>
#include <dos.h>/* Get current drive as 'A', 'B', ... */
char current_drive(void)
{
char curdrive; /* Get current disk as 0, 1, ... */
curdrive = bdos(0x19, 0, 0);
return('A' + curdrive);
}int main(void)
{
printf("The current drive is %c:/n", current_drive());
return 0;
}
函数名: bdosptr
功 能: DOS系统调用
用 法: int bdosptr( int dosfun, void *argument,
unsigned dosal );
程序例:#include <string.h>
#include <stdio.h>
#include <dir.h>
#include <dos.h>
#include <errno.h>
#include <stdlib.h>#define BUFLEN 80int main(void)
{
char buffer[BUFLEN];
int test; printf("Enter full pathname of a directory/n");
gets(buffer); test = bdosptr(0x3B,buffer,0);
if(test)
{ printf("DOS error message: %d/n", errno);
/* See errno.h for error listings */
exit (1);
} getcwd(buffer, BUFLEN);
printf("The current directory is: %s/n", buffer); return 0;
}
函数名: bioscom
功 能: 串行I/O通信
用 法: int bioscom(int cmd, char abyte, int port);
程序例:
#include <bios.h>
#include <conio.h>#define COM1 0
#define DATA_READY 0x100
#define TRUE 1
#define FALSE 0#define SETTINGS ( 0x80 | 0x02 | 0x00 | 0x00)int main(void)
{
int in, out, status, DONE = FALSE; bioscom(0, SETTINGS, COM1);
cprintf("... BIOSCOM [ESC] to exit .../n");
while (!DONE)
{
status = bioscom(3, 0, COM1);
if (status & DATA_READY)
if ((out = bioscom(2, 0, COM1) & 0x7F) != 0)
putch(out); if (kbhit())
{
if ((in = getch()) == '/x1B')
DONE = TRUE;
bioscom(1, in, COM1);
}
}
return 0;
}
函数名: biosdisk
功 能: 软硬盘I/O
用 法: int biosdisk( int cmd,int drive,int head,int track,
int sector,int nsects, void *buffer);
程序例:#include <bios.h>
#include <stdio.h>int main(void)
{
int result;
char buffer[512]; printf("Testing to see if drive a: is ready/n");
result = biosdisk(4,0,0,0,0,1,buffer);
result &= 0x02;
(result) ? (printf("Drive A: Ready/n")) :
(printf("Drive A: Not Ready/n"));
return 0;
}
函数名: biosequip
功 能: 检查设备
用 法: int biosequip(void);
程序例:#include <bios.h>
#include <stdio.h>int main(void)
{
int result;
char buffer[512]; printf("Testing to see if drive a: is ready/n");
result = biosdisk(4,0,0,0,0,1,buffer);
result &= 0x02;
(result) ? (printf("Drive A: Ready/n")) :
(printf("Drive A: Not Ready/n")); return 0;
}
函数名: bioskey
功 能: 直接使用BIOS服务的键盘接口
用 法: int bioskey(int cmd);
程序例:#include <stdio.h>
#include <bios.h>
#include <ctype.h>#define RIGHT 0x01
#define LEFT 0x02
#define CTRL 0x04
#define ALT 0x08int main(void)
{
int key, modifiers; /* function 1 returns 0 until a key is pressed */
while (bioskey(1) == 0); /* function 0 returns the key that is waiting */
key = bioskey(0); /* use function 2 to determine if shift keys were used */
modifiers = bioskey(2); if (modifiers)
{
printf("[");
if (modifiers & RIGHT) printf("RIGHT");
if (modifiers & LEFT) printf("LEFT");
if (modifiers & CTRL) printf("CTRL");
if (modifiers & ALT) printf("ALT");
printf("]");
}
/* print out the character read */
if (isalnum(key & 0xFF))
printf("'%c'/n", key);
else printf("%#02x/n", key);
return 0;
}
函数名: biosmemory
功 能: 返回存储块大小
用 法:int biosmemory(void);
程序例:
#include <stdio.h>
#include <bios.h>
int main(void)
{
int memory_size;
memory_size = biosmemory();
/* returns value up to 640K */
printf("RAM size = %dK/n",memory_size);
return 0;
}
函数名: biosprint
功 能: 直接使用BIOS服务的打印机I/O
用 法: int biosprint(int cmd, int byte, int port);
程序例:
#include <stdio.h>
#include <conio.h>
#include <bios.h>int main(void)
{
#define STATUS 2 /* printer status command */
#define PORTNUM 0 /* port number for LPT1 */ int status, abyte=0; printf("Please turn off your printer./
Press any key to continue/n");
getch();
status = biosprint(STATUS, abyte, PORTNUM);
if (status & 0x01)
printf("Device time out./n");
if (status & 0x08)
printf("I/O error./n"); if (status & 0x10)
printf("Selected./n");
if (status & 0x20)
printf("Out of paper./n"); if (status & 0x40)
printf("Acknowledge./n");
if (status & 0x80)
printf("Not busy./n"); return 0;
}
函数名: biostime
功 能: 读取或设置BIOS时间
用 法: long biostime(int cmd, long newtime);
程序例:#include <stdio.h>
#include <bios.h>
#include <time.h>
#include <conio.h>int main(void)
{
long bios_time;
clrscr(); cprintf("The number of clock ticks since midnight/
is:/r/n");
cprintf("The number of seconds since midnight is:/r/n");
cprintf("The number of minutes since midnight is:/r/n");
cprintf("The number of hours since midnight is:/r/n");
cprintf("/r/nPress any key to quit:");
while(!kbhit())
{
bios_time = biostime(0, 0L); gotoxy(50, 1);
cprintf("%lu", bios_time); gotoxy(50, 2);
cprintf("%.4f", bios_time / CLK_TCK); gotoxy(50, 3);
cprintf("%.4f", bios_time / CLK_TCK / 60); gotoxy(50, 4);
cprintf("%.4f", bios_time / CLK_TCK / 3600);
}
return 0;
}
函数名: brk
功 能: 改变数据段空间分配
用 法: int brk(void *endds);
程序例:#include <stdio.h>
#include <alloc.h>int main(void)
{
char *ptr; printf("Changing allocation with brk()/n");
ptr = malloc(1); printf("Before brk() call:%lu bytes free/n",coreleft());
brk(ptr+1000);
printf(" After brk() call:%lu bytes free/n",coreleft());
return 0;
}
函数名: bsearch
功 能: 二分法搜索
用 法: void *bsearch( const void *key, const void *base,
size_t *nelem, size_t width,
int(*fcmp)(const void *, const *));
程序例:
#include <stdlib.h>
#include <stdio.h>
#define NELEMS(arr) (sizeof(arr) / sizeof(arr[0]))
int numarray[] = {123, 145, 512, 627, 800, 933};
int numeric (const int *p1, const int *p2)
{
return(*p1 - *p2);
}int lookup(int key)
{
int *itemptr; /* The cast of (int(*)(const void *,const void*))
is needed to avoid a type mismatch error at
compile time */
itemptr = bsearch (&key, numarray, NELEMS(numarray),
sizeof(int), (int(*)(const void *,const void *))numeric);
return (itemptr != NULL);
}int main(void)
{
if (lookup(512))
printf("512 is in the table./n");
else
printf("512 isn't in the table./n"); return 0;
}

字母C开头函数
函数名: cabs
功 能: 计算复数的绝对值
用 法: double cabs(struct complex z);
程序例:
#include <stdio.h>
#include <math.h>
int main(void)
{
struct complex z;
double val;
z.x = 2.0;
z.y = 1.0;
val = cabs(z); printf("The absolute value of %.2lfi %.2lfj is %.2lf/
", z.x, z.y, val);
return 0;
}
函数名: calloc
功 能: 分配主存储器
用 法: void *calloc(size_t nelem, size_t elsize);
程序例:#include <stdio.h>
#include <alloc.h>int main(void)
{
char *str = NULL;
/* allocate memory for string */
str = calloc(10, sizeof(char));
/* copy "Hello" into string */ strcpy(str, "Hello");
/* display string */
printf("String is %s/n", str);
/* free memory */
free(str);
return 0;
}
函数名: ceil
功 能: 向上舍入
用 法: double ceil(double x);
程序例:#include <math.h>
#include <stdio.h>int main(void)
{
double number = 123.54;
double down, up; down = floor(number); up = ceil(number); printf("original number %5.2lf/n", number);
printf("number rounded down %5.2lf/n", down);
printf("number rounded up %5.2lf/n", up); return 0;
}
函数名: cgets
功 能: 从控制台读字符串
用 法: char *cgets(char *str);
程序例:#include <stdio.h>
#include <conio.h>int main(void)
{
char buffer[83];
char *p;
/* There's space for 80 characters plus the NULL /
terminator */ buffer[0] = 81; printf("Input some chars:");
p = cgets(buffer);
printf("/ncgets read %d characters: /"%s/"/n/
", buffer[1], p);
printf("The returned pointer is %p, buffer[0] is at %p/n/
", p, &buffer);
/* Leave room for 5 characters plus the NULL terminator */
buffer[0] = 6; printf("Input some chars:");
p = cgets(buffer);
printf("/ncgets read %d characters: /"%s/"/n/
", buffer[1], p); printf("The returned pointer is %p, buffer[0] is at %p/n/
", p, &buffer);
return 0;
}
函数名: chdir
功 能: 改变工作目录
用 法: int chdir(const char *path);
程序例:#include <stdio.h>
#include <stdlib.h>
#include <dir.h>char old_dir[MAXDIR];
char new_dir[MAXDIR];int main(void)
{
if (getcurdir(0, old_dir))
{ perror("getcurdir()");
exit(1);
}
printf("Current directory is: //%s/n", old_dir);
if (chdir("//"))
{ perror("chdir()");
exit(1);
}
if (getcurdir(0, new_dir))
{ perror("getcurdir()");
exit(1);
} printf("Current directory is now: //%s/n", new_dir); printf("/nChanging back to orignal directory: //%s/n/
", old_dir);
if (chdir(old_dir))
{ perror("chdir()");
exit(1);
}
return 0;
}
函数名: _chmod, chmod
功 能: 改变文件的访问方式
用 法: int chmod(const char *filename, int permiss);
程序例:#include <sys/stat.h>
#include <stdio.h>
#include <io.h>void make_read_only(char *filename);int main(void)
{ make_read_only("NOTEXIST.FIL");
make_read_only("MYFILE.FIL"); return 0;
}void make_read_only(char *filename)
{ int stat;
stat = chmod(filename, S_IREAD);
if (stat)
printf("Couldn't make %s read-only/n", filename);
else
printf("Made %s read-only/n", filename);
}
函数名: chsize
功 能: 改变文件大小
用 法: int chsize(int handle, long size);
程序例:#include <string.h>
#include <fcntl.h>
#include <io.h>int main(void)
{
int handle;
char buf[11] = "0123456789";
/* create text file containing 10 bytes */
handle = open("DUMMY.FIL", O_CREAT);
write(handle, buf, strlen(buf)); /* truncate the file to 5 bytes in size */
chsize(handle, 5); /* close the file */
close(handle);
return 0;}
函数名: circle
功 能: 在给定半径以(x, y)为圆心画圆
用 法: void far circle(int x, int y, int radius);
程序例:#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>int main(void)
{
/* request auto detection */
int gdriver = DETECT, gmode, errorcode; int midx, midy;
int radius = 100; /* 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;
setcolor(getmaxcolor()); /* draw the circle */
circle(midx, midy, radius); /* clean up */
getch();
closegraph();
return 0;
}
函数名: cleardevice
功 能: 清除图形屏幕
用 法: void far cleardevice(void);
程序例:#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>int main(void)
{
/* request auto detection */
int gdriver = DETECT, gmode, errorcode; int midx, midy; /* 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;
setcolor(getmaxcolor()); /* for centering screen messages */
settextjustify(CENTER_TEXT, CENTER_TEXT); /* output a message to the screen */
outtextxy(midx,midy,"press any key to clear the screen:"); /* wait for a key */
getch(); /* clear the screen */
cleardevice(); /* output another message */
outtextxy(midx, midy, "press any key to quit:"); /* clean up */
getch();
closegraph();
return 0;
}
函数名: clearerr
功 能: 复位错误标志
用 法:void clearerr(FILE *stream);
程序例:#include <stdio.h>int main(void)
{
FILE *fp;
char ch; /* open a file for writing */
fp = fopen("DUMMY.FIL", "w"); /* force an error condition by attempting to read */
ch = fgetc(fp);
printf("%c/n",ch); if (ferror(fp))
{
/* display an error message */
printf("Error reading from DUMMY.FIL/n"); /* reset the error and EOF indicators */
clearerr(fp);
} fclose(fp);
return 0;
}
函数名: clearviewport
功 能: 清除图形视区
用 法: void far clearviewport(void);
程序例:#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>#define CLIP_ON 1 /* activates clipping in viewport */int main(void)
{ /* request auto detection */
int gdriver = DETECT, gmode, errorcode;
int ht; /* 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 */
} setcolor(getmaxcolor());
ht = textheight("W"); /* message in default full-screen viewport */
outtextxy(0, 0, "* <-- (0, 0) in default viewport"); /* create a smaller viewport */
setviewport(50, 50, getmaxx()-50, getmaxy()-50, CLIP_ON);
/* display some messages */
outtextxy(0, 0, "* <-- (0, 0) in smaller viewport");
outtextxy(0, 2*ht, "Press any key to clear viewport:"); /* wait for a key */
getch(); /* clear the viewport */
clearviewport(); /* output another message */
outtextxy(0, 0, "Press any key to quit:"); /* clean up */ getch();
closegraph();
return 0;
}
函数名: _close, close
功 能: 关闭文件句柄
用 法: int close(int handle);
程序例:#include <string.h>
#include <stdio.h>
#include <fcntl.h>
#include <io.h>main()
{
int handle;
char buf[11] = "0123456789"; /* create a file containing 10 bytes */
handle = open("NEW.FIL", O_CREAT);
if (handle > -1)
{
write(handle, buf, strlen(buf)); /* close the file */
close(handle);
}
else
{
printf("Error opening file/n");
} return 0;
}
函数名: clock
功 能: 确定处理器时间
用 法: clock_t clock(void);
程序例:#include <time.h>
#include <stdio.h>
#include <dos.h>int main(void)
{
clock_t start, end;
start = clock();
delay(2000); end = clock();
printf("The time was: %f/n", (end - start) / CLK_TCK); return 0;
}
函数名: closegraph
功 能: 关闭图形系统
用 法: void far closegraph(void);
程序例:#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>int main(void)
{
/* request auto detection */
int gdriver = DETECT, gmode, errorcode; int x, y; /* initialize graphics mode */
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 */
}
x = getmaxx() / 2;
y = getmaxy() / 2; /* output a message */
settextjustify(CENTER_TEXT, CENTER_TEXT);
outtextxy(x, y, "Press a key to close the graphics /
system:"); /* wait for a key */
getch();
/* closes down the graphics system */
closegraph(); printf("We're now back in text mode./n");
printf("Press any key to halt:");
getch();
return 0;
}
函数名: clreol
功 能: 在文本窗口中清除字符到行末
用 法: void clreol(void);
程序例:#include <conio.h>int main(void)
{
clrscr();
cprintf("The function CLREOL clears all characters from/
the/r/n");
cprintf("cursor position to the end of the line within/
the/r/n"); cprintf("current text window, without moving the cursor./
/r/n");
cprintf("Press any key to continue . . .");
gotoxy(14, 4);
getch();
clreol();
getch();
return 0;
}
函数名: clrscr
功 能: 清除文本模式窗口
用 法: void clrscr(void);
程序例:
#include <conio.h>int main(void)
{
int i;
clrscr();
for (i = 0; i < 20; i++)
cprintf("%d/r/n", i);
cprintf("/r/nPress any key to clear screen");
getch(); clrscr();
cprintf("The screen has been cleared!");
getch();
return 0;
}
函数名: coreleft
功 能: 返回未使用内存的大小
用 法: unsigned coreleft(void);
程序例:
#include <stdio.h>
#include <alloc.h>int main(void)
{
printf("The difference between the highest allocated /
block and/n");
printf("the top of the heap is: %lu bytes/n/
", (unsigned long) coreleft());
return 0;
}
函数名: cos
功 能: 余弦函数
用 法: double cos(double x);
程序例:#include <stdio.h>
#include <math.h>int main(void)
{
double result;
double x = 0.5; result = cos(x); printf("The cosine of %lf is %lf/n", x, result);
return 0;
}
函数名: cosh
功 能: 双曲余弦函数
用 法: dluble cosh(double x);
程序例:#include <stdio.h>
#include <math.h>int main(void)
{
double result;
double x = 0.5; result = cosh(x); printf("The hyperboic cosine of %lf is %lf/n",x,result);
return 0;
}
函数名: country
功 能: 返回与国家有关的信息
用 法: struct COUNTRY *country( int countrycode,
struct country *country);
程序例:#include <dos.h>
#include <stdio.h>#define USA 0int main(void)
{
struct COUNTRY country_info; country(USA, &country_info);
printf("The currency symbol for the USA is: %s/n",
country_info.co_curr);
return 0;
}
函数名: cprintf
功 能: 送格式化输出至屏幕
用 法: int cprintf(const char *format[, argument, ...]);
程序例:#include <conio.h>int main(void)
{
/* clear the screen */
clrscr(); /* create a text window */
window(10, 10, 80, 25); /* output some text in the window */
cprintf("Hello world/r/n"); /* wait for a key */
getch();
return 0;
}
函数名: cputs
功 能: 写字符到屏幕
用 法: void cputs(const char *string);
程序例:#include <conio.h>int main(void)
{
/* clear the screen */
clrscr(); /* create a text window */
window(10, 10, 80, 25); /* output some text in the window */
cputs("This is within the window/r/n"); /* wait for a key */
getch();
return 0;
}
函数名: _creat, creat
功 能: 创建一个新文件或重写一个已存在的文件
用 法: int creat (const char *filename, int permiss);
程序例:#include <sys/stat.h>
#include <string.h>
#include <fcntl.h>
#include <io.h>int main(void)
{
int handle;
char buf[11] = "0123456789"; /* change the default file mode from text to binary */
_fmode = O_BINARY; /* create a binary file for reading and writing */
handle = creat("DUMMY.FIL", S_IREAD | S_IWRITE); /* write 10 bytes to the file */
write(handle, buf, strlen(buf)); /* close the file */
close(handle);
return 0;
}
函数名: creatnew
功 能: 创建一个新文件
用 法: int creatnew(const char *filename, int attrib);
程序例:#include <string.h>
#include <stdio.h>
#include <errno.h>
#include <dos.h>
#include <io.h>int main(void)
{
int handle; char buf[11] = "0123456789"; /* attempt to create a file that doesn't already exist */
handle = creatnew("DUMMY.FIL", 0); if (handle == -1)
printf("DUMMY.FIL already exists./n");
else
{
printf("DUMMY.FIL successfully created./n");
write(handle, buf, strlen(buf));
close(handle);
} return 0;
}
函数名: creattemp
功 能: 创建一个新文件或重写一个已存在的文件
用 法: int creattemp(const char *filename, int attrib);
程序例:#include <string.h>
#include <stdio.h>
#include <io.h>int main(void)
{
int handle;
char pathname[128];
strcpy(pathname, "//");
/* create a unique file in the root directory */
handle = creattemp(pathname, 0);
printf("%s was the unique file created./n", pathname);
close(handle);
return 0;
}
函数名: cscanf
功 能: 从控制台执行格式化输入
用 法: int cscanf(char *format[,argument, ...]);
程序例:#include <conio.h>int main(void)
{
char string[80]; /* clear the screen */
clrscr();
/* Prompt the user for input */
cprintf("Enter a string with no spaces:"); /* read the input */
cscanf("%s", string); /* display what was read */
cprintf("/r/nThe string entered is: %s", string);
return 0;
}
函数名: ctime
功 能: 把日期和时间转换为字符串
用 法: char *ctime(const time_t *time);
程序例:#include <stdio.h>
#include <time.h>int main(void)
{
time_t t; time(&t);
printf("Today's date and time: %s/n", ctime(&t)); return 0;
}
函数名: ctrlbrk
功 能: 设置Ctrl-Break处理程序
用 法: void ctrlbrk(*fptr)(void);
程序例:#include <stdio.h>
#include <dos.h>#define ABORT 0int c_break(void)
{
printf("Control-Break pressed. Program aborting .../n");
return (ABORT);}
int main(void)
{
ctrlbrk(c_break);
for(;;)
{ printf("Looping... Press <Ctrl-Break> to quit:/n");
}
return 0;
}

字母D开头函数
函数名: delay
功 能: 将程序的执行暂停一段时间(毫秒)
用 法: void delay(unsigned milliseconds);
程序例:
/* Emits a 440-Hz tone for 500 milliseconds */
#include <dos.h>int main(void)
{
sound(440);
delay(500);
nosound();
return 0;
}
函数名: delline
功 能: 在文本窗口中删去一行
用 法: void delline(void);
程序例:#include <conio.h>int main(void)
{
clrscr();
cprintf("The function DELLINE deletes /
the line containing the/r/n");
cprintf("cursor and moves all lines /
below it one line up./r/n"); cprintf("DELLINE operates within the /
currently active text/r/n");
cprintf("window. Press any key to /
continue . . .");
gotoxy(1,2); /* Move the cursor to the
second line and first column */
getch();
delline();
getch(); return 0;
}
函数名: detectgraph
功 能: 通过检测硬件确定图形驱动程序和模式
用 法: void far detectgraph( int far *graphdriver,
int far *graphmode);
程序例:#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>/* names of the various cards supported */
char *dname[] = { "requests detection",
"a CGA", "an MCGA",
"an EGA",
"a 64K EGA",
"a monochrome EGA",
"an IBM 8514",
"a Hercules monochrome",
"an AT&T 6300 PC",
"a VGA",
"an IBM 3270 PC"
};int main(void)
{
/* returns detected hardware info. */ int gdriver, gmode, errorcode; /* detect graphics hardware available */
detectgraph(&gdriver, &gmode); /* read result of detectgraph call */
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 */
} /* display the information detected */
clrscr();
printf("You have %s video display /
card./n", dname[gdriver]);
printf("Press any key to halt:");
getch();
return 0;
}
函数名: difftime
功 能: 计算两个时刻之间的时间差
用 法: double difftime(time_t time2, time_t time1);
程序例:#include <time.h>
#include <stdio.h>
#include <dos.h>
#include <conio.h>int main(void)
{
time_t first, second;
clrscr();
first = time(NULL); /* Gets system time */ delay(2000); /* Waits 2 secs */
second = time(NULL); /* Gets system time
again */
printf("The difference is: %f /
seconds/n",difftime(second,first));
getch();
return 0;
}
函数名: disable
功 能: 屏蔽中断
用 法: void disable(void);
程序例:/***NOTE: This is an interrupt service
routine. You cannot compile this program
with Test Stack Overflow turned on and
get an executable file that operates
correctly. */#include <stdio.h>
#include <dos.h>
#include <conio.h>#define INTR 0X1C /* The clock tick interrupt */void interrupt ( *oldhandler)(void);int count=0;void interrupt handler(void)
{
/* disable interrupts during the handling of
the interrupt */
disable();
/* increase the global counter */
count++;/* reenable interrupts at the end of the
handler */
enable();
/* call the old routine */
oldhandler();
}int main(void)
{
/* save the old interrupt vector */
oldhandler = getvect(INTR);/* install the new interrupt handler */
setvect(INTR, handler);/* loop until the counter exceeds 20 */
while (count < 20)
printf("count is %d/n",count);/* reset the old interrupt handler */
setvect(INTR, oldhandler); return 0;
}
函数名: div
功 能: 将两个整数相除, 返回商和余数
用 法: div_t (int number, int denom);
程序例:
#include <stdlib.h>
#include <stdio.h>
div_t x;int main(void)
{
x = div(10,3);
printf("10 div 3 = %d remainder %d/n", x.quot, x.rem);
return 0;
}
函数名: dosexterr
功 能: 获取扩展DOS错误信息
用 法: int dosexterr(struct DOSERR *dblkp);
程序例:#include <stdio.h>
#include <dos.h>int main(void)
{
FILE *fp;
struct DOSERROR info; fp = fopen("perror.dat","r"); if (!fp) perror("Unable to open file for
reading");
dosexterr(&info); printf("Extended DOS error /
information:/n");
printf(" Extended error: /
%d/n",info.exterror);
printf(" Class: /
%x/n",info.class);
printf(" Action: /
%x/n",info.action);
printf(" Error Locus: /
%x/n",info.locus); return 0;
}
函数名: dostounix
功 能: 转换日期和时间为UNIX时间格式
用 法: long dostounix( struct date *dateptr,
struct time *timeptr );
程序例: #include <time.h>
#include <stddef.h>
#include <dos.h>
#include <stdio.h> int main(void)
{
time_t t; struct time d_time;
struct date d_date;
struct tm *local; getdate(&d_date);
gettime(&d_time); t = dostounix(&d_date, &d_time);
local = localtime(&t);
printf("Time and Date: %s/n", asctime(local));
return 0;
}
函数名: drawpoly
功 能: 画多边形
用 法: void far drawpoly( int numpoints,
int far *polypoints );
程序例:#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>int main(void)
{
/* request auto detection */ int gdriver = DETECT, gmode, errorcode;
int maxx, maxy; /* our polygon array */
int poly[10]; /* 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();
/* terminate with an error code */
exit(1);
}
maxx = getmaxx();
maxy = getmaxy(); poly[0] = 20; /* 1st vertext */
poly[1] = maxy / 2; poly[2] = maxx - 20; /* 2nd */
poly[3] = 20; poly[4] = maxx - 50; /* 3rd */
poly[5] = maxy - 20; poly[6] = maxx / 2; /* 4th */
poly[7] = maxy / 2;
/*
drawpoly doesn't automatically close
the polygon, so we close it.
*/ poly[8] = poly[0];
poly[9] = poly[1]; /* draw the polygon */
drawpoly(5, poly); /* clean up */
getch();
closegraph();
return 0;
}
函数名: dup
功 能: 复制一个文件句柄
用 法: int dup(int handle);
程序例:#include <string.h>
#include <stdio.h>
#include <conio.h>
#include <io.h>void flush(FILE *stream);int main(void)
{ FILE *fp;
char msg[] = "This is a test"; /* create a file */
fp = fopen("DUMMY.FIL", "w"); /* write some data to the file */
fwrite(msg, strlen(msg), 1, fp);
clrscr();
printf("Press any key to flush /
DUMMY.FIL:");
getch(); /* flush the data to DUMMY.FIL without
closing it */
flush(fp); printf("/nFile was flushed, Press any /
key to quit:");
getch();
return 0;
}void flush(FILE *stream)
{
int duphandle;
/* flush TC's internal buffer */
fflush(stream); /* make a duplicate file handle */
duphandle = dup(fileno(stream)); /* close the duplicate handle to flush the
DOS buffer */
close(duphandle);
}
函数名: dup2
功 能: 复制文件句柄
用 法: int dup2(int oldhandle, int newhandle);
程序例:#include <sys/stat.h>
#include <string.h>
#include <fcntl.h>
#include <io.h>int main(void)
{
#define STDOUT 1
int nul, oldstdout;
char msg[] = "This is a test"; /* create a file */
nul = open("DUMMY.FIL", O_CREAT | O_RDWR,
S_IREAD | S_IWRITE); /* create a duplicate handle for standard
output */
oldstdout = dup(STDOUT);
/*
redirect standard output to DUMMY.FIL
by duplicating the file handle onto the
file handle for standard output. */ dup2(nul, STDOUT);
/* close the handle for DUMMY.FIL */
close(nul); /* will be redirected into DUMMY.FIL */
write(STDOUT, msg, strlen(msg)); /* restore original standard output
handle */
dup2(oldstdout, STDOUT); /* close duplicate handle for STDOUT */
close(oldstdout);
return 0;
}

字母E开头函数
函数名: ecvt
功 能: 把一个浮点数转换为字符串
用 法: char ecvt( double value, int ndigit, int *decpt,
int *sign );
程序例:#include <stdlib.h>
#include <stdio.h>
#include <conio.h>int main(void)
{
char *string;
double value; int dec, sign;
int ndig = 10; clrscr();
value = 9.876;
string = ecvt(value, ndig, &dec, &sign);
printf("string = %s dec = %d /
sign = %d/n", string, dec, sign);
value = -123.45;
ndig= 15;
string = ecvt(value,ndig,&dec,&sign);
printf("string = %s dec = %d sign = %d/n",
string, dec, sign); value = 0.6789e5; /* scientific
notation */
ndig = 5;
string = ecvt(value,ndig,&dec,&sign);
printf("string = %s dec = %d/
sign = %d/n", string, dec, sign); return 0;
}
函数名: ellipse
功 能: 画一椭圆
用 法: void far ellipse( int x, int y, int stangle,
int endangle, int xradius,
int yradius);
程序例:#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>int main(void)
{ /* request auto detection */
int gdriver = DETECT, gmode, errorcode;
int midx, midy;
int stangle = 0, endangle = 360;
int xradius = 100, yradius = 50; /* initialize graphics, 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;
setcolor(getmaxcolor()); /* draw ellipse */
ellipse(midx, midy, stangle, endangle,
xradius, yradius);
/* clean up */
getch();
closegraph();
return 0;
}
函数名: enable
功 能: 开放硬件中断
用 法: void enable(void);
程序例:/* ** NOTE:
This is an interrupt service routine. You can NOT compile
this program with Test Stack Overflow turned on and get an
executable file which will operate correctly.
*/#include <stdio.h>
#include <dos.h>
#include <conio.h>/* The clock tick interrupt */
#define INTR 0X1Cvoid interrupt ( *oldhandler)(void);int count=0;void interrupt handler(void)
{
/*
disable interrupts during the handling of the interrupt
*/
disable();
/* increase the global counter */ count++;
/* re enable interrupts at the end of the handler*/
enable();
/* call the old routine */
oldhandler();
}int main(void)
{
/* save the old interrupt vector */
oldhandler = getvect(INTR);
/* install the new interrupt handler */
setvect(INTR, handler);/* loop until the counter exceeds 20 */
while (count < 20)
printf("count is %d/n",count);/* reset the old interrupt handler */
setvect(INTR, oldhandler); return 0;
}
函数名: eof
功 能: 检测文件结束
用 法: int eof(int *handle);
程序例:#include <sys/stat.h>
#include <string.h>
#include <stdio.h>
#include <fcntl.h>
#include <io.h>int main(void)
{
int handle; char msg[] = "This is a test";
char ch;
/* create a file */
handle = open("DUMMY.FIL",
O_CREAT | O_RDWR,
S_IREAD | S_IWRITE);
/* write some data to the file */
write(handle, msg, strlen(msg)); /* seek to the beginning of the file */
lseek(handle, 0L, SEEK_SET); /* reads chars from the file until hit EOF */
do
{ read(handle, &ch, 1);
printf("%c", ch);
} while (!eof(handle)); close(handle);
return 0;
}
函数名: exec...
功 能: 装入并运行其它程序的函数
用 法: int execl( char *pathname, char *arg0, arg1, ...,
argn, NULL );
int execle( char *pathname, char *arg0, arg1, ...,
argn, NULL, char *envp[] );
int execlp( char *pathname, char *arg0, arg1, ..,
NULL );
int execple( char *pathname, char *arg0, arg1, ...,
NULL, char *envp[] );
int execv( char *pathname, char *argv[] );
int execve( char *pathname, char *argv[],
char *envp[] );
int execvp( char *pathname, char *argv[] ); int execvpe( char *pathname, char *argv[],
char *envp[] );
程序例:/* execv example */
#include <process.h>
#include <stdio.h>
#include <errno.h>
void main(int argc, char *argv[])
{
int i; printf("Command line arguments:/n"); for (i=0; i<argc; i++)
printf("[%2d] : %s/n", i, argv[i]);
printf("About to exec child with arg1 arg2 .../n");
execv("CHILD.EXE", argv);
perror("exec error");
exit(1);
}
函数名: exit
功 能: 终止程序
用 法: void exit(int status);
程序例:#include <stdlib.h>
#include <conio.h>
#include <stdio.h>int main(void)
{
int status; printf("Enter either 1 or 2/n"); status = getch();
/* Sets DOS errorlevel */
exit(status - '0');/* Note: this line is never reached */
return 0;
}
函数名: exp
功 能: 指数函数
用 法: double exp(double x);
程序例:#include <stdio.h>
#include <math.h>int main(void)
{
double result;
double x = 4.0; result = exp(x); printf("'e' raised to the power /
of %lf (e ^ %lf) = %lf/n",
x, x, result); return 0;
}

字母F开头函数
函数名: fabs
功 能: 返回浮点数的绝对值
用 法: double fabs(double x);
程序例:#include <stdio.h>
#include <math.h>
int main(void)
{
float number = -1234.0;
printf("number: %f absolute value: %f/n",
number, fabs(number));
return 0;
}
函数名: farcalloc
功 能: 从远堆栈中申请空间
用 法: void far *farcalloc( unsigned long units,
unsigned ling unitsz );
程序例:
#include <stdio.h>
#include <alloc.h>
#include <string.h>
#include <dos.h>int main(void)
{
char far *fptr;
char *str = "Hello"; /* allocate memory for the far pointer */
fptr = farcalloc(10, sizeof(char)); /* copy "Hello" into allocated memory */ /*
Note: movedata is used because you
might be in a small data model, in
which case a normal string copy routine
can not be used since it assumes the
pointer size is near. */
movedata(FP_SEG(str), FP_OFF(str),
FP_SEG(fptr), FP_OFF(fptr),
strlen(str)); /* display string (note the F modifier) */
printf("Far string is: %Fs/n", fptr); /* free the memory */
farfree(fptr); return 0;
}
函数名: farcoreleft
功 能: 返回远堆中未作用存储区大小
用 法: long farcoreleft(void);
程序例:#include <stdio.h>
#include <alloc.h>int main(void)
{
printf("The difference between the/
highest allocated block in the/
far/n"); printf("heap and the top of the far heap/
is: %lu bytes/n", farcoreleft()); return 0;
}
函数名: farfree
功 能: 从远堆中释放一块
用 法: void farfree(void);
程序例:#include <stdio.h>
#include <alloc.h>
#include <string.h>
#include <dos.h>int main(void)
{
char far *fptr;
char *str = "Hello"; /* allocate memory for the far pointer */
fptr = farcalloc(10, sizeof(char)); /* copy "Hello" into allocated memory */
/*
Note: movedata is used because you might be in a
small data model, in which case a normal string
copy routine can't be used since it assumes the
pointer size is near.
*/
movedata(FP_SEG(str), FP_OFF(str),
FP_SEG(fptr), FP_OFF(fptr),
strlen(str)); /* display string (note the F modifier) */
printf("Far string is: %Fs/n", fptr); /* free the memory */
farfree(fptr); return 0;
}
函数名: farmalloc
功 能: 从远堆中分配存储块
用 法: void far *farmalloc(unsigned long size);
程序例:#include <stdio.h>
#include <alloc.h>
#include <string.h>
#include <dos.h>int main(void)
{
char far *fptr;
char *str = "Hello"; /* allocate memory for the far pointer */
fptr = farmalloc(10); /* copy "Hello" into allocated memory */
/*
Note: movedata is used because we might
be in a small data model, in which case
a normal string copy routine can not be
used since it assumes the pointer size
is near.
*/
movedata(FP_SEG(str), FP_OFF(str),
FP_SEG(fptr), FP_OFF(fptr),
strlen(str)); /* display string (note the F modifier) */
printf("Far string is: %Fs/n", fptr); /* free the memory */
farfree(fptr); return 0;
}
函数名: farrealloc
功 能: 调整远堆中的分配块
用 法: void far *farrealloc( void far *block,
unsigned long newsize );
程序例:#include <stdio.h>
#include <alloc.h>int main(void)
{
char far *fptr; fptr = farmalloc(10); printf("First address: %Fp/n", fptr);
fptr = farrealloc(fptr,20);
printf("New address : %Fp/n", fptr);
farfree(fptr);
return 0;
}
函数名: fclose
功 能: 关闭一个流
用 法: int fclose(FILE *stream);
程序例:#include <string.h>
#include <stdio.h>int main(void)
{
FILE *fp;
char buf[11] = "0123456789"; /* create a file containing 10 bytes */ fp = fopen("DUMMY.FIL", "w");
fwrite(&buf, strlen(buf), 1, fp); /* close the file */
fclose(fp);
return 0;
}
函数名: fcloseall
功 能: 关闭打开流
用 法: int fcloseall(void);
程序例:#include <stdio.h>int main(void)
{
int streams_closed; /* open two streams */
fopen("DUMMY.ONE", "w");
fopen("DUMMY.TWO", "w"); /* close the open streams */
streams_closed = fcloseall(); if (streams_closed == EOF)
/* issue an error message */
perror("Error");
else
/* print result of fcloseall() function */
printf("%d streams were closed./n", streams_closed); return 0;
}
函数名: fcvt
功 能: 把一个浮点数转换为字符串
用 法: char *fcvt( double value, int ndigit, int *decpt,
int *sign );
程序例:#include <stdlib.h>
#include <stdio.h>
#include <conio.h>int main(void)
{
char *string;
double value; int dec, sign;
int ndig = 10; clrscr();
value = 9.876;
string = ecvt(value, ndig, &dec, &sign);
printf("string = %s dec = %d /
sign = %d/n", string, dec, sign);
value = -123.45;
ndig= 15;
string = ecvt(value,ndig,&dec,&sign);
printf("string = %s dec = %d sign = %d/n",
string, dec, sign); value = 0.6789e5; /* scientific
notation */
ndig = 5;
string = ecvt(value,ndig,&dec,&sign);
printf("string = %s dec = %d/
sign = %d/n", string, dec, sign);
return 0;
}
函数名: fdopen
功 能: 把流与一个文件句柄相接
用 法: FILE *fdopen(int handle, char *type);
程序例:#include <sys/stat.h>
#include <stdio.h>
#include <fcntl.h>
#include <io.h>int main(void)
{
int handle;
FILE *stream; /* open a file */
handle = open("DUMMY.FIL", O_CREAT,
S_IREAD | S_IWRITE);
/* now turn the handle into a stream */
stream = fdopen(handle, "w"); if (stream == NULL)
printf("fdopen failed/n");
else
{
fprintf(stream, "Hello world/n");
fclose(stream);
} return 0;
}
函数名: feof
功 能: 检测流上的文件结束符
用 法: int feof(FILE *stream);
程序例:#include <stdio.h>int main(void)
{
FILE *stream; /* open a file for reading */
stream = fopen("DUMMY.FIL", "r"); /* read a character from the file */
fgetc(stream); /* check for EOF */
if (feof(stream))
printf("We have reached end-of-file/n"); /* close the file */
fclose(stream);
return 0;
}
函数名: ferror
功 能: 检测流上的错误
用 法: int ferror(FILE *stream);
程序例:#include <stdio.h>int main(void)
{
FILE *stream; /* open a file for writing */
stream = fopen("DUMMY.FIL", "w");
/* force an error condition by attempting to read */
(void) getc(stream); if (ferror(stream)) /*test for an error on the stream*/
{
/* display an error message */
printf("Error reading from DUMMY.FIL/n"); /* reset the error and EOF indicators */
clearerr(stream);
} fclose(stream);
return 0;
}
函数名: fflush
功 能: 清除一个流
用 法: int fflush(FILE *stream);
程序例:#include <string.h>
#include <stdio.h>
#include <conio.h>
#include <io.h>void flush(FILE *stream);int main(void)
{ FILE *stream;
char msg[] = "This is a test"; /* create a file */
stream = fopen("DUMMY.FIL", "w"); /* write some data to the file */
fwrite(msg, strlen(msg), 1, stream); clrscr();
printf("Press any key to flush/
DUMMY.FIL:");
getch(); /* flush the data to DUMMY.FIL without/
closing it */
flush(stream); printf("/nFile was flushed, Press any key/
to quit:");
getch();
return 0;
}void flush(FILE *stream)
{
int duphandle; /* flush the stream's internal buffer */
fflush(stream); /* make a duplicate file handle */
duphandle = dup(fileno(stream)); /* close the duplicate handle to flush/
the DOS buffer */
close(duphandle);
}
函数名: fgetc
功 能: 从流中读取字符
用 法: int fgetc(FILE *stream);
程序例:#include <string.h>
#include <stdio.h>
#include <conio.h>int main(void)
{
FILE *stream;
char string[] = "This is a test";
char ch; /* open a file for update */
stream = fopen("DUMMY.FIL", "w+");
/* write a string into the file */
fwrite(string, strlen(string), 1, stream);
/* seek to the beginning of the file */
fseek(stream, 0, SEEK_SET);
do
{
/* read a char from the file */
ch = fgetc(stream); /* display the character */
putch(ch);
} while (ch != EOF); fclose(stream);
return 0;
}
函数名: fgetchar
功 能: 从流中读取字符
用 法: int fgetchar(void);
程序例:#include <stdio.h>int main(void)
{
char ch;
/* prompt the user for input */
printf("Enter a character followed by /
<Enter>: ");
/* read the character from stdin */ ch = fgetchar();
/* display what was read */
printf("The character read is: '%c'/n",
ch);
return 0;
}
函数名: fgetpos
功 能: 取得当前文件的句柄
用 法: int fgetpos(FILE *stream);
程序例:#include <string.h>
#include <stdio.h>int main(void)
{
FILE *stream;
char string[] = "This is a test";
fpos_t filepos;
/* open a file for update */
stream = fopen("DUMMY.FIL", "w+"); /* write a string into the file */
fwrite(string, strlen(string), 1, stream); /* report the file pointer position */
fgetpos(stream, &filepos);
printf("The file pointer is at byte/
%ld/n", filepos); fclose(stream);
return 0;
}
函数名: fgets
功 能: 从流中读取一字符串
用 法: char *fgets(char *string, int n, FILE *stream);
程序例:#include <string.h>
#include <stdio.h>int main(void)
{
FILE *stream;
char string[] = "This is a test";
char msg[20];
/* open a file for update */ stream = fopen("DUMMY.FIL", "w+");
/* write a string into the file */
fwrite(string, strlen(string), 1, stream);
/* seek to the start of the file */
fseek(stream, 0, SEEK_SET);
/* read a string from the file */
fgets(msg, strlen(string)+1, stream); /* display the string */
printf("%s", msg); fclose(stream);
return 0;
}
函数名: filelength
功 能: 取文件长度字节数
用 法: long filelength(int handle);
程序例:#include <string.h>
#include <stdio.h>
#include <fcntl.h>
#include <io.h>int main(void)
{
int handle;
char buf[11] = "0123456789"; /* create a file containing 10 bytes */
handle = open("DUMMY.FIL", O_CREAT);
write(handle, buf, strlen(buf)); /* display the size of the file */
printf("file length in bytes: %ld/n",
filelength(handle)); /* close the file */
close(handle);
return 0;
}
函数名: fillellipse
功 能: 画出并填充一椭圆
用 法: void far fillellipse( int x, int y, int xradius,
int yradius );
程序例:#include <graphics.h>
#include <conio.h>int main(void)
{
int gdriver = DETECT, gmode;
int xcenter, ycenter, i;
initgraph(&gdriver,&gmode,"");
xcenter = getmaxx() / 2;
ycenter = getmaxy() / 2; for (i=0; i<13; i++)
{
setfillstyle(i,WHITE);
fillellipse(xcenter,ycenter,100,50);
getch();
}
closegraph();
return 0;
}
函数名: fillpoly
功 能: 画并填充一个多边形
用 法: void far fillpoly( int numpoints,
int far *polypoints );
程序例:#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>int main(void)
{
/* request auto detection */ int gdriver = DETECT, gmode, errorcode;
int i, maxx, maxy; /* our polygon array */
int poly[8]; /* initialize graphics, 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(); poly[0] = 20; /* 1st vertext */
poly[1] = maxy / 2;
poly[2] = maxx - 20; /* 2nd */
poly[3] = 20; poly[4] = maxx - 50; /* 3rd */
poly[5] = maxy - 20;
/*
4th vertex. fillpoly automatically
closes the polygon.
*/
poly[6] = maxx / 2;
poly[7] = maxy / 2; /* loop through the fill patterns */
for (i=EMPTY_FILL; i<USER_FILL; i++)
{
/* set fill pattern */
setfillstyle(i, getmaxcolor()); /* draw a filled polygon */
fillpoly(4, poly);
getch();
} /* clean up */
closegraph();
return 0;
}
函数名: findfirst
功 能: 搜索磁盘目录; 取得下一个匹配的findfirst模式的文件
用 法: int findfirst( char *pathname, struct ffblk *ffblk,
int attrib);
程序例:/* findfirst example */#include <stdio.h>
#include <dir.h>int main(void)
{
struct ffblk ffblk; int done;
printf("Directory listing of *.*/n");
done = findfirst("*.*",&ffblk,0);
while (!done)
{
printf(" %s/n", ffblk.ff_name);
done = findnext(&ffblk);
}
return 0;
}
函数名: findnext
功 能: 搜索磁盘目录; 取得下一个匹配的findfirst模式的文件
用 法: int findnext(struct ffblk *ffblk);
程序例:
/* findnext example */#include <stdio.h>
#include <dir.h>int main(void)
{
struct ffblk ffblk;
int done;
printf("Directory listing of *.*/n"); done = findfirst("*.*",&ffblk,0);
while (!done)
{
printf(" %s/n", ffblk.ff_name);
done = findnext(&ffblk);
}
return 0;
}
函数名: floodfill
功 能: 填充一个有界区域
用 法: void far floodfill(int x, int y, int border);
程序例:#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>int main(void)
{
/* request auto detection */
int gdriver = DETECT, gmode, errorcode; int maxx, maxy; /* initialize graphics, 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(); /* select drawing color */
setcolor(getmaxcolor()); /* select fill color */
setfillstyle(SOLID_FILL, getmaxcolor()); /* draw a border around the screen */
rectangle(0, 0, maxx, maxy); /* draw some circles */
circle(maxx / 3, maxy /2, 50);
circle(maxx / 2, 20, 100);
circle(maxx-20, maxy-50, 75);
circle(20, maxy-20, 25); /* wait for a key */
getch(); /* fill in bounded region */
floodfill(2, 2, getmaxcolor()); /* clean up */
getch(); closegraph();
return 0;
}
函数名: floor
功 能: 向下舍入
用 法: double floor(double x);
程序例:#include <stdio.h>
#include <math.h>int main(void)
{
double number = 123.54;
double down, up; down = floor(number); up = ceil(number); printf("original number %10.2lf/n",
number);
printf("number rounded down %10.2lf/n",
down);
printf("number rounded up %10.2lf/n",
up); return 0;
}
函数名: flushall
功 能: 清除所有缓冲区
用 法: int flushall(void);
程序例:#include <stdio.h>int main(void)
{
FILE *stream; /* create a file */
stream = fopen("DUMMY.FIL", "w");
/* flush all open streams */ printf("%d streams were flushed./n",
flushall());
/* close the file */
fclose(stream);
return 0;
}
函数名: fmod
功 能: 计算x对y的模, 即x/y的余数
用 法: double fmod(double x, double y);
程序例:#include <stdio.h>
#include <math.h>int main(void)
{
double x = 5.0, y = 2.0;
double result; result = fmod(x,y); printf("The remainder of (%lf / %lf) is /
%lf/n", x, y, result);
return 0;
}
函数名: fnmerge
功 能: 建立新文件名
用 法: void fnerge(char *path, char *drive, char *dir);
程序例:#include <string.h>
#include <stdio.h>
#include <dir.h>int main(void)
{
char s[MAXPATH];
char drive[MAXDRIVE];
char dir[MAXDIR]; char file[MAXFILE];
char ext[MAXEXT]; getcwd(s,MAXPATH); /*get the current working directory*/
strcat(s,"//"); /*append on a trailing character*/
fnsplit(s,drive,dir,file,ext);
/* split the string to separate elems */
strcpy(file,"DATA");
strcpy(ext,".TXT");
fnmerge(s,drive,dir,file,ext);
/* merge everything into one string */
puts(s); /* display resulting string */
return 0;
}
函数名: fopen
功 能: 打开一个流
用 法: FILE *fopen(char *filename, char *type);
程序例:#include <stdlib.h>
#include <stdio.h>
#include <dir.h>int main(void)
{
char *s;
char drive[MAXDRIVE];
char dir[MAXDIR]; char file[MAXFILE];
char ext[MAXEXT];
int flags; s=getenv("COMSPEC");
/* get the comspec environment parameter */
flags=fnsplit(s,drive,dir,file,ext); printf("Command processor info:/n");
if(flags & DRIVE)
printf("/tdrive: %s/n",drive);
if(flags & DIRECTORY)
printf("/tdirectory: %s/n",dir); if(flags & FILENAME)
printf("/tfile: %s/n",file);
if(flags & EXTENSION)
printf("/textension: %s/n",ext); return 0;
}
函数名: fprintf
功 能: 传送格式化输出到一个流中
用 法: int fprintf( FILE *stream,
char *format[, argument,...] );
程序例:/* Program to create backup of the
AUTOEXEC.BAT file */#include <stdio.h>int main(void)
{
FILE *in, *out; if ((in = fopen("//AUTOEXEC.BAT", "rt"))
== NULL)
{
fprintf(stderr, "Cannot open input /
file./n");
return 1;
}
if ((out = fopen("//AUTOEXEC.BAK", "wt"))
== NULL)
{ fprintf(stderr, "Cannot open output /
file./n");
return 1;
} while (!feof(in))
fputc(fgetc(in), out);
fclose(in);
fclose(out);
return 0;
}
函数名: FP_OFF
功 能: 获取远地址偏移量
用 法: unsigned FP_OFF(void far *farptr);
程序例:/* FP_OFF */#include <dos.h>
#include <stdio.h>int main(void)
{
char *str = "fpoff.c";
printf("The offset of this file in memory/
is: %Fp/n", FP_OFF(str)); return 0;
}
函数名: FP_SEG
功 能: 获取远地址段值
用 法: unsigned FP_SEG(void far *farptr);
程序例:/* FP_SEG */#include <dos.h>
#include <stdio.h>int main(void)
{
char *filename = "fpseg.c";
printf("The offset of this file in memory/
is: %Fp/n", FP_SEG(filename)); return(0);
}
函数名: fputc
功 能: 送一个字符到一个流中
用 法: int fputc(int ch, FILE *stream);
程序例:
#include <stdio.h>int main(void)
{
char msg[] = "Hello world";
int i = 0; while (msg[i])
{
fputc(msg[i], stdout); i++;
}
return 0;
}
函数名: fputchar
功 能: 送一个字符到标准输出流(stdout)中
用 法: int fputchar(char ch);
程序例:#include <stdio.h>int main(void)
{
char msg[] = "This is a test";
int i = 0;
while (msg[i])
{
fputchar(msg[i]); i++;
}
return 0;
}
函数名: fputs
功 能: 送一个字符到一个流中
用 法: int fputs(char *string, FILE *stream);
程序例:#include <stdio.h>
int main(void)
{
/* write a string to standard output */
fputs("Hello world/n", stdout);
return 0;
}
函数名: fread
功 能: 从一个流中读数据
用 法: int fread( void *ptr, int size, int nitems,
FILE *stream );
程序例:#include <string.h>
#include <stdio.h>int main(void)
{
FILE *stream;
char msg[] = "this is a test";
char buf[20]; if ((stream = fopen("DUMMY.FIL", "w+"))
== NULL)
{
fprintf(stderr,
"Cannot open output file./n");
return 1;
}
/* write some data to the file */
fwrite(msg, strlen(msg)+1, 1, stream); /* seek to the beginning of the file */
fseek(stream, SEEK_SET, 0); /* read the data and display it */
fread(buf, strlen(msg)+1, 1, stream);
printf("%s/n", buf); fclose(stream);
return 0;
}
函数名: free
功 能: 释放已分配的块
用 法: void free(void *ptr);
程序例:#include <string.h>
#include <stdio.h>
#include <alloc.h>int main(void)
{
char *str; /* allocate memory for string */
str = malloc(10); /* copy "Hello" to string */
strcpy(str, "Hello"); /* display string */
printf("String is %s/n", str); /* free memory */
free(str); return 0;
}
函数名: filelength
功 能: 取文件长度字节数
用 法: long filelength(int handle);
程序例:#include <string.h>
#include <stdio.h>
#include <fcntl.h>
#include <io.h>int main(void)
{
int handle;
char buf[11] = "0123456789"; /* create a file containing 10 bytes */
handle = open("DUMMY.FIL", O_CREAT);
write(handle, buf, strlen(buf)); /* display the size of the file */
printf("file length in bytes: %ld/n",
filelength(handle)); /* close the file */
close(handle);
return 0;
}
函数名: fillellipse
功 能: 画出并填充一椭圆
用 法: void far fillellipse( int x, int y, int xradius,
int yradius );
程序例:#include <graphics.h>
#include <conio.h>int main(void)
{
int gdriver = DETECT, gmode;
int xcenter, ycenter, i;
initgraph(&gdriver,&gmode,"");
xcenter = getmaxx() / 2;
ycenter = getmaxy() / 2; for (i=0; i<13; i++)
{
setfillstyle(i,WHITE);
fillellipse(xcenter,ycenter,100,50);
getch();
}
closegraph();
return 0;
}
函数名: fillpoly
功 能: 画并填充一个多边形
用 法: void far fillpoly( int numpoints,
int far *polypoints );
程序例:#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>int main(void)
{
/* request auto detection */ int gdriver = DETECT, gmode, errorcode;
int i, maxx, maxy; /* our polygon array */
int poly[8]; /* initialize graphics, 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(); poly[0] = 20; /* 1st vertext */
poly[1] = maxy / 2;
poly[2] = maxx - 20; /* 2nd */
poly[3] = 20; poly[4] = maxx - 50; /* 3rd */
poly[5] = maxy - 20;
/*
4th vertex. fillpoly automatically
closes the polygon.
*/
poly[6] = maxx / 2;
poly[7] = maxy / 2; /* loop through the fill patterns */
for (i=EMPTY_FILL; i<USER_FILL; i++)
{
/* set fill pattern */
setfillstyle(i, getmaxcolor()); /* draw a filled polygon */
fillpoly(4, poly);
getch();
} /* clean up */
closegraph();
return 0;
}
函数名: findfirst
功 能: 搜索磁盘目录; 取得下一个匹配的findfirst模式的文件
用 法: int findfirst( char *pathname, struct ffblk *ffblk,
int attrib);
程序例:/* findfirst example */#include <stdio.h>
#include <dir.h>int main(void)
{
struct ffblk ffblk; int done;
printf("Directory listing of *.*/n");
done = findfirst("*.*",&ffblk,0);
while (!done)
{
printf(" %s/n", ffblk.ff_name);
done = findnext(&ffblk);
}
return 0;
}
函数名: findnext
功 能: 搜索磁盘目录; 取得下一个匹配的findfirst模式的文件
用 法: int findnext(struct ffblk *ffblk);
程序例:
/* findnext example */#include <stdio.h>
#include <dir.h>int main(void)
{
struct ffblk ffblk;
int done;
printf("Directory listing of *.*/n"); done = findfirst("*.*",&ffblk,0);
while (!done)
{
printf(" %s/n", ffblk.ff_name);
done = findnext(&ffblk);
}
return 0;
}
函数名: floodfill
功 能: 填充一个有界区域
用 法: void far floodfill(int x, int y, int border);
程序例:#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>int main(void)
{
/* request auto detection */
int gdriver = DETECT, gmode, errorcode; int maxx, maxy; /* initialize graphics, 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(); /* select drawing color */
setcolor(getmaxcolor()); /* select fill color */
setfillstyle(SOLID_FILL, getmaxcolor()); /* draw a border around the screen */
rectangle(0, 0, maxx, maxy); /* draw some circles */
circle(maxx / 3, maxy /2, 50);
circle(maxx / 2, 20, 100);
circle(maxx-20, maxy-50, 75);
circle(20, maxy-20, 25); /* wait for a key */
getch(); /* fill in bounded region */
floodfill(2, 2, getmaxcolor()); /* clean up */
getch(); closegraph();
return 0;
}
函数名: floor
功 能: 向下舍入
用 法: double floor(double x);
程序例:#include <stdio.h>
#include <math.h>int main(void)
{
double number = 123.54;
double down, up; down = floor(number); up = ceil(number); printf("original number %10.2lf/n",
number);
printf("number rounded down %10.2lf/n",
down);
printf("number rounded up %10.2lf/n",
up); return 0;
}
函数名: flushall
功 能: 清除所有缓冲区
用 法: int flushall(void);
程序例:#include <stdio.h>int main(void)
{
FILE *stream; /* create a file */
stream = fopen("DUMMY.FIL", "w");
/* flush all open streams */ printf("%d streams were flushed./n",
flushall());
/* close the file */
fclose(stream);
return 0;
}
函数名: fmod
功 能: 计算x对y的模, 即x/y的余数
用 法: double fmod(double x, double y);
程序例:#include <stdio.h>
#include <math.h>int main(void)
{
double x = 5.0, y = 2.0;
double result; result = fmod(x,y); printf("The remainder of (%lf / %lf) is /
%lf/n", x, y, result);
return 0;
}
函数名: fnmerge
功 能: 建立新文件名
用 法: void fnerge(char *path, char *drive, char *dir);
程序例:#include <string.h>
#include <stdio.h>
#include <dir.h>int main(void)
{
char s[MAXPATH];
char drive[MAXDRIVE];
char dir[MAXDIR]; char file[MAXFILE];
char ext[MAXEXT]; getcwd(s,MAXPATH); /*get the current working directory*/
strcat(s,"//"); /*append on a trailing character*/
fnsplit(s,drive,dir,file,ext);
/* split the string to separate elems */
strcpy(file,"DATA");
strcpy(ext,".TXT");
fnmerge(s,drive,dir,file,ext);
/* merge everything into one string */
puts(s); /* display resulting string */
return 0;
}
函数名: fopen
功 能: 打开一个流
用 法: FILE *fopen(char *filename, char *type);
程序例:#include <stdlib.h>
#include <stdio.h>
#include <dir.h>int main(void)
{
char *s;
char drive[MAXDRIVE];
char dir[MAXDIR]; char file[MAXFILE];
char ext[MAXEXT];
int flags; s=getenv("COMSPEC");
/* get the comspec environment parameter */
flags=fnsplit(s,drive,dir,file,ext); printf("Command processor info:/n");
if(flags & DRIVE)
printf("/tdrive: %s/n",drive);
if(flags & DIRECTORY)
printf("/tdirectory: %s/n",dir); if(flags & FILENAME)
printf("/tfile: %s/n",file);
if(flags & EXTENSION)
printf("/textension: %s/n",ext); return 0;
}
函数名: fprintf
功 能: 传送格式化输出到一个流中
用 法: int fprintf( FILE *stream,
char *format[, argument,...] );
程序例:/* Program to create backup of the
AUTOEXEC.BAT file */#include <stdio.h>int main(void)
{
FILE *in, *out; if ((in = fopen("//AUTOEXEC.BAT", "rt"))
== NULL)
{
fprintf(stderr, "Cannot open input /
file./n");
return 1;
}
if ((out = fopen("//AUTOEXEC.BAK", "wt"))
== NULL)
{ fprintf(stderr, "Cannot open output /
file./n");
return 1;
} while (!feof(in))
fputc(fgetc(in), out);
fclose(in);
fclose(out);
return 0;
}
函数名: FP_OFF
功 能: 获取远地址偏移量
用 法: unsigned FP_OFF(void far *farptr);
程序例:/* FP_OFF */#include <dos.h>
#include <stdio.h>int main(void)
{
char *str = "fpoff.c";
printf("The offset of this file in memory/
is: %Fp/n", FP_OFF(str)); return 0;
}
函数名: FP_SEG
功 能: 获取远地址段值
用 法: unsigned FP_SEG(void far *farptr);
程序例:/* FP_SEG */#include <dos.h>
#include <stdio.h>int main(void)
{
char *filename = "fpseg.c";
printf("The offset of this file in memory/
is: %Fp/n", FP_SEG(filename)); return(0);
}
函数名: fputc
功 能: 送一个字符到一个流中
用 法: int fputc(int ch, FILE *stream);
程序例:
#include <stdio.h>int main(void)
{
char msg[] = "Hello world";
int i = 0; while (msg[i])
{
fputc(msg[i], stdout); i++;
}
return 0;
}
函数名: fputchar
功 能: 送一个字符到标准输出流(stdout)中
用 法: int fputchar(char ch);
程序例:#include <stdio.h>int main(void)
{
char msg[] = "This is a test";
int i = 0;
while (msg[i])
{
fputchar(msg[i]); i++;
}
return 0;
}
函数名: fputs
功 能: 送一个字符到一个流中
用 法: int fputs(char *string, FILE *stream);
程序例:#include <stdio.h>
int main(void)
{
/* write a string to standard output */
fputs("Hello world/n", stdout);
return 0;
}
函数名: fread
功 能: 从一个流中读数据
用 法: int fread( void *ptr, int size, int nitems,
FILE *stream );
程序例:#include <string.h>
#include <stdio.h>int main(void)
{
FILE *stream;
char msg[] = "this is a test";
char buf[20]; if ((stream = fopen("DUMMY.FIL", "w+"))
== NULL)
{
fprintf(stderr,
"Cannot open output file./n");
return 1;
}
/* write some data to the file */
fwrite(msg, strlen(msg)+1, 1, stream); /* seek to the beginning of the file */
fseek(stream, SEEK_SET, 0); /* read the data and display it */
fread(buf, strlen(msg)+1, 1, stream);
printf("%s/n", buf); fclose(stream);
return 0;
}
函数名: free
功 能: 释放已分配的块
用 法: void free(void *ptr);
程序例:#include <string.h>
#include <stdio.h>
#include <alloc.h>int main(void)
{
char *str; /* allocate memory for string */
str = malloc(10); /* copy "Hello" to string */
strcpy(str, "Hello"); /* display string */
printf("String is %s/n", str); /* free memory */
free(str); return 0;
}
函数名: freemem
功 能: 释放先前分配的DOS内存块
用 法: int freemem(unsigned seg);
程序例:#include <dos.h>
#include <alloc.h>
#include <stdio.h>int main(void)
{
unsigned int size, segp;
int stat; size = 64; /* (64 x 16) = 1024 bytes */
stat = allocmem(size, &segp);
if (stat < 0)
printf("Allocated memory at segment:/
%x/n", segp);
else
printf("Failed: maximum number of/
paragraphs available is %u/n",
stat);
freemem(segp); return 0;
}
函数名: freopen
功 能: 替换一个流
用 法: FILE *freopen( char *filename, char *type,
FILE *stream );
程序例:#include <stdio.h>int main(void)
{
/* redirect standard output to a file */
if (freopen("OUTPUT.FIL", "w", stdout)
== NULL) fprintf(stderr, "error redirecting/
stdout/n"); /* this output will go to a file */
printf("This will go into a file."); /* close the standard output stream */
fclose(stdout); return 0;
}
函数名: frexp
功 能: 把一个双精度数分解为尾数的指数
用 法: double frexp(double value, int *eptr);
程序例:#include <math.h>
#include <stdio.h>int main(void)
{
double mantissa, number;
int exponent;
number = 8.0;
mantissa = frexp(number, &exponent); printf("The number %lf is ", number);
printf("%lf times two to the ", mantissa);
printf("power of %d/n", exponent);
return 0;
}
函数名: fscanf
功 能: 从一个流中执行格式化输入
用 法: int fscanf( FILE *stream,
char *format[,argument...] );
程序例:#include <stdlib.h>
#include <stdio.h>int main(void)
{
int i; printf("Input an integer: "); /* read an integer from the
standard input stream */
if (fscanf(stdin, "%d", &i))
printf("The integer read was: %i/n",
i);
else
{
fprintf(stderr, "Error reading an /
integer from stdin./n");
exit(1);
}
return 0;
}
函数名: fseek
功 能: 重定位流上的文件指针
用 法: int fseek(FILE *stream,long offset,int fromwhere);
程序例:#include <stdio.h>long filesize(FILE *stream);int main(void)
{
FILE *stream;
stream = fopen("MYFILE.TXT", "w+");
fprintf(stream, "This is a test"); printf("Filesize of MYFILE.TXT is %ld bytes/n/
", filesize(stream));
fclose(stream);
return 0;
}long filesize(FILE *stream)
{
long curpos, length; curpos = ftell(stream);
fseek(stream, 0L, SEEK_END);
length = ftell(stream);
fseek(stream, curpos, SEEK_SET); return length;
}
函数名: fsetpos
功 能: 定位流上的文件指针
用 法: int fsetpos(FILE *stream, const fpos_t *pos);
程序例:#include <stdlib.h>
#include <stdio.h>void showpos(FILE *stream);int main(void)
{
FILE *stream;
fpos_t filepos; /* open a file for update */
stream = fopen("DUMMY.FIL", "w+"); /* save the file pointer position */
fgetpos(stream, &filepos); /* write some data to the file */
fprintf(stream, "This is a test"); /* show the current file position */
showpos(stream); /* set a new file position, display it */
if (fsetpos(stream, &filepos) == 0) showpos(stream);
else
{
fprintf(stderr, "Error setting file /
pointer./n");
exit(1);
} /* close the file */
fclose(stream);
return 0;
}void showpos(FILE *stream)
{
fpos_t pos; /* display the current file pointer
position of a stream */
fgetpos(stream, &pos);
printf("File position: %ld/n", pos);
}
函数名: fstat
功 能: 获取打开文件信息
用 法: int fstat(char *handle, struct stat *buff);
程序例:#include <sys/stat.h>
#include <stdio.h>
#include <time.h>int main(void)
{
struct stat statbuf;
FILE *stream; /* open a file for update */
if ((stream = fopen("DUMMY.FIL", "w+"))
== NULL)
{
fprintf(stderr, "Cannot open output /
file./n");
return(1);
}
fprintf(stream, "This is a test");
fflush(stream); /* get information about the file */
fstat(fileno(stream), &statbuf);
fclose(stream); /* display the information returned */
if (statbuf.st_mode & S_IFCHR)
printf("Handle refers to a device./n");
if (statbuf.st_mode & S_IFREG)
printf("Handle refers to an ordinary /
file./n");
if (statbuf.st_mode & S_IREAD)
printf("User has read permission on /
file./n");
if (statbuf.st_mode & S_IWRITE)
printf("User has write permission on /
file./n"); printf("Drive letter of file: %c/n",
'A'+statbuf.st_dev);
printf("Size of file in bytes: %ld/n",
statbuf.st_size);
printf("Time file last opened: %s/n",
ctime(&statbuf.st_ctime));
return 0;
}
函数名: ftell
功 能: 返回当前文件指针
用 法: long ftell(FILE *stream);
程序例:#include <stdio.h>int main(void)
{
FILE *stream; stream = fopen("MYFILE.TXT", "w+");
fprintf(stream, "This is a test"); printf("The file pointer is at byte /
%ld/n", ftell(stream));
fclose(stream);
return 0;
}
函数名: fwrite
功 能: 写内容到流中
用 法: int fwrite( void *ptr, int size, int nitems,
FILE *stream );
程序例:#include <stdio.h>struct mystruct
{
int i;
char ch;
};int main(void)
{
FILE *stream;
struct mystruct s; if ((stream = fopen("TEST.$$$", "wb")) == NULL)
/* open file TEST.$$$ */
{
fprintf(stderr, "Cannot open output file./n");
return 1;
}
s.i = 0;
s.ch = 'A'; fwrite(&s, sizeof(s), 1, stream);
/* write struct s to file */
fclose(stream); /* close file */
return 0;
}

字母G开头函数
函数名: gcvt
功 能: 把浮点数转换成字符串
用 法: char *gcvt(double value, int ndigit, char *buf);
程序例:#include <stdlib.h>
#include <stdio.h>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);
}
函数名: getarccoords
功 能: 取得最后一次调用arc的坐标
用 法: void far getarccoords
( struct arccoordstype far *arccoords );
程序例:#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>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 <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>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 <graphics.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <conio.h>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 <stdio.h>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 <stdio.h>
#include <dos.h>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 <stdio.h>
#include <conio.h>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 <stdio.h>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 <stdio.h>
#include <conio.h>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 <graphics.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <conio.h>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 <dir.h>
#include <stdio.h>
#include <string.h>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 <stdio.h>
#include <dir.h>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 <dos.h>
#include <stdio.h>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 <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>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;
}
函数名: getdfree
功 能: 取磁盘自由空间
用 法: void getdfree(int drive, struct dfree *dfreep);
程序例:#include <stdio.h>
#include <stdlib.h>
#include <dir.h>
#include <dos.h>int main(void)
{
struct dfree free;
long avail; int drive; drive = getdisk();
getdfree(drive+1, &free);
if (free.df_sclus == 0xFFFF)
{
printf("Error in getdfree() call/n");
exit(1);
} avail = (long) free.df_avail *
(long) free.df_bsec *
(long) free.df_sclus;
printf("Drive %c: has %ld bytes /
available/n", 'A' + drive, avail); return 0;
}
函数名: getdisk
功 能: 取当前磁盘驱动器号
用 法: int getdisk(void);
程序例:#include <stdio.h>
#include <dir.h>int main(void)
{
int disk; disk = getdisk() + 'A'; printf("The current drive is: %c/n",
disk);
return 0;
}
函数名: getdrivername
功 能: 返回指向包含当前图形驱动程序名字的字符串指针
用 法: char *getdrivename(void);
程序例:#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>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 <dos.h>
#include <stdio.h>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 <stdlib.h>
#include <stdio.h>int main(void)
{
char *s; s=getenv("COMSPEC"); /* get the comspec environment parameter */
printf("Command processor: %s/n",s);
/* display comspec parameter */ return 0;
}
函数名: highvideo
功 能: 选择高亮度文本字符
用 法: void highvideo(void);
程序例:#include <conio.h>int main(void)
{
clrscr(); lowvideo();
cprintf("Low Intensity text/r/n");
highvideo(); gotoxy(1,2);
cprintf("High Intensity Text/r/n"); return 0;
}
函数名: hypot
功 能: 计算直角三角形的斜边长
用 法: double hypot(double x, double y);
程序例:#include <stdio.h>
#include <math.h>int main(void)
{
double result;
double x = 3.0;
double y = 4.0;
result = hypot(x, y);
printf("The hypotenuse is: %lf/n", result); return 0;
}
字母I开头函数
函数名: imagesize
功 能: 返回保存位图像所需的字节数
用 法: unsigned far imagesize( int left, int top, int right,
int bottom );
程序例:#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>#define ARROW_SIZE 10void draw_arrow(int x, int y);int main(void)
{
/* request autodetection */
int gdriver = DETECT, gmode, errorcode;
void *arrow;
int x, y, maxx;
unsigned int size; /* 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();
x = 0;
y = getmaxy() / 2; /* draw the image to be grabbed */
draw_arrow(x, y); /* calculate the size of the image */
size = imagesize(x, y-ARROW_SIZE, x+(4*ARROW_SIZE),
y+ARROW_SIZE); /* allocate memory to hold the image */
arrow = malloc(size); /* grab the image */
getimage(x, y-ARROW_SIZE, x+(4*ARROW_SIZE),
y+ARROW_SIZE, arrow);
/* repeat until a key is pressed */
while (!kbhit())
{
/* erase old image */
putimage(x, y-ARROW_SIZE, arrow, XOR_PUT); x += ARROW_SIZE;
if (x >= maxx)
x = 0; /* plot new image */
putimage(x, y-ARROW_SIZE, arrow, XOR_PUT);
} /* clean up */
free(arrow);
closegraph();
return 0;
}void draw_arrow(int x, int y)
{ /* draw an arrow on the screen */
moveto(x, y);
linerel(4*ARROW_SIZE, 0);
linerel(-2*ARROW_SIZE, -1*ARROW_SIZE);
linerel(0, 2*ARROW_SIZE);
linerel(2*ARROW_SIZE, -1*ARROW_SIZE);
}
函数名: initgraph
功 能: 初始化图形系统
用 法: void far initgraph( int far *graphdriver,
int far *graphmode,
char far *pathtodriver );
程序例:#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>int main(void)
{ /* request auto detection */
int gdriver = DETECT, gmode, errorcode; /* initialize graphics mode */
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); /* return with error code */
} /* draw a line */
line(0, 0, getmaxx(), getmaxy()); /* clean up */
getch();
closegraph();
return 0;
}
函数名: inport
功 能: 从硬件端口中输入
用 法: int inp(int protid);
程序例:#include <stdio.h>
#include <dos.h>int main(void)
{
int result;
int port = 0; /* serial port 0 */ result = inport(port); printf("Word read from port %d = 0x%X/n", port, result);
return 0;
}
函数名: insline
功 能: 在文本窗口中插入一个空行
用 法: void insline(void);
程序例:#include <conio.h>int main(void)
{
clrscr();
cprintf("INSLINE inserts an empty line in the text /
window/r/n");
cprintf("at the cursor position using the current text/
/r/n"); cprintf("background color. All lines below the empty /
one/r/n");
cprintf("move down one line and the bottom line scrolls/
/r/n");
cprintf("off the bottom of the window./r/n");
cprintf("/r/nPress any key to continue:");
gotoxy(1, 3);
getch();
insline();
getch();
return 0;
}
函数名: installuserdriver
功 能: 安装设备驱动程序到BGI设备驱动程序表中
用 法: int far installuserdriver( char far *name,
int (*detect)(void) );
程序例:#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>/* function prototypes */
int huge detectEGA(void);
void checkerrors(void);int main(void)
{
int gdriver, gmode; /* install a user written device driver */
gdriver = installuserdriver("EGA", detectEGA); /* must force use of detection routine */
gdriver = DETECT; /* check for any installation errors */
checkerrors();
/* initialize graphics and local variables */
initgraph(&gdriver, &gmode, ""); /* check for any initialization errors */
checkerrors(); /* draw a line */
line(0, 0, getmaxx(), getmaxy()); /* clean up */
getch();
closegraph();
return 0;
}/* detects EGA or VGA cards */
int huge detectEGA(void)
{
int driver, mode, sugmode = 0; detectgraph(&driver, &mode);
if ((driver == EGA) || (driver == VGA))
/* return suggested video mode number */
return sugmode;
else
/* return an error code */
return grError;
}/* check for and report any graphics errors */
void checkerrors(void)
{
int errorcode; /* read result of last graphics operation */
errorcode = graphresult();
if (errorcode != grOk)
{ printf("Graphics error: %s/n",
grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1); }
}
函数名: installuserfont
功 能: 安装未嵌入BGI系统的字体文件(CHR)
用 法: int far installuserfont(char far *name);
程序例:#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>/* function prototype */
void checkerrors(void);int main(void)
{ /* request auto detection */
int gdriver = DETECT, gmode;
int userfont;
int midx, midy; /* initialize graphics and local variables */
initgraph(&gdriver, &gmode, ""); midx = getmaxx() / 2;
midy = getmaxy() / 2; /* check for any initialization errors */
checkerrors();
/* install a user defined font file */
userfont = installuserfont("USER.CHR"); /* check for any installation errors */
checkerrors(); /* select the user font */
settextstyle(userfont, HORIZ_DIR, 4); /* output some text */
outtextxy(midx, midy, "Testing!");
/* clean up */
getch();
closegraph();
return 0;
}/* check for and report any graphics errors */
void checkerrors(void)
{
int errorcode; /* read result of last graphics operation */
errorcode = graphresult(); if (errorcode != grOk)
{
printf("Graphics error: %s/n",
grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1);
}
}
函数名: int86
功 能: 通用8086软中断接口
用 法: int int86( int intr_num, union REGS *inregs,
union REGS *outregs );
程序例:#include <stdio.h>
#include <conio.h>
#include <dos.h>#define VIDEO 0x10void movetoxy(int x, int y)
{ union REGS regs; regs.h.ah = 2; /* set cursor postion */
regs.h.dh = y;
regs.h.dl = x;
regs.h.bh = 0; /* video page 0 */
int86(VIDEO, &regs, &regs);
}int main(void)
{
clrscr();
movetoxy(35, 10);
printf("Hello/n"); return 0;
}
函数名: int86x
功 能: 通用8086软中断接口
用 法: int int86x(int intr_num, union REGS *insegs,
union REGS *outregs,struct SREGS *segregs);
程序例:#include <dos.h>
#include <process.h>
#include <stdio.h>int main(void)
{
char filename[80];
union REGS inregs, outregs; struct SREGS segregs; printf("Enter filename: ");
gets(filename);
inregs.h.ah = 0x43;
inregs.h.al = 0x21;
inregs.x.dx = FP_OFF(filename);
segregs.ds = FP_SEG(filename);
int86x(0x21, &inregs, &outregs, &segregs);
printf("File attribute: %X/n", outregs.x.cx);
return 0;
}
函数名: intdos
功 能: 通用DOS接口
用 法: int intdos(union REGS *inregs, union REGS *outregs);
程序例:#include <stdio.h>
#include <dos.h>/* deletes file name; returns 0 on success,
nonzero on failure */
int delete_file(char near *filename)
{
union REGS regs;
int ret; regs.h.ah = 0x41; /* delete file */
regs.x.dx = (unsigned) filename;
ret = intdos(&regs, &regs); /* if carry flag is set, there was an error */
return(regs.x.cflag ? ret : 0);
}int main(void)
{
int err;
err = delete_file("NOTEXIST.$$$");
if (!err)
printf("Able to delete NOTEXIST.$$$/n"); else
printf("Not Able to delete NOTEXIST.$$$/n");
return 0;
}
函数名: intdosx
功 能: 通用DOS中断接口
用 法: int intdosx( union REGS *inregs, union REGS *outregs,
struct SREGS *segregs );
程序例:#include <stdio.h>
#include <dos.h>/* deletes file name; returns 0 on success, nonzero
on failure */
int delete_file(char far *filename)
{
union REGS regs; struct SREGS sregs; int ret;
regs.h.ah = 0x41; /* delete file */
regs.x.dx = FP_OFF(filename);
sregs.ds = FP_SEG(filename);
ret = intdosx(&regs, &regs, &sregs); /* if carry flag is set, there was an error */
return(regs.x.cflag ? ret : 0);
}int main(void)
{
int err;
err = delete_file("NOTEXIST.$$$"); if (!err)
printf("Able to delete NOTEXIST.$$$/n");
else
printf("Not Able to delete NOTEXIST.$$$/n");
return 0;
}
函数名: intr
功 能: 改变软中断接口
用 法: void intr(int intr_num, struct REGPACK *preg);
程序例:#include <stdio.h>
#include <string.h>
#include <dir.h>
#include <dos.h>#define CF 1 /* Carry flag */int main(void)
{ char directory[80];
struct REGPACK reg; printf("Enter directory to change to: ");
gets(directory);
reg.r_ax = 0x3B << 8; /* shift 3Bh into AH */
reg.r_dx = FP_OFF(directory);
reg.r_ds = FP_SEG(directory);
intr(0x21, &reg);
if (reg.r_flags & CF)
printf("Directory change failed/n");
getcwd(directory, 80);
printf("The current directory is: %s/n", directory);
return 0;
}
函数名: ioctl
功 能: 控制I/O设备
用 法: int ioctl( int handle,
int cmd[,int *argdx, int argcx] );
程序例:#include <stdio.h>
#include <dir.h>
#include <io.h>int main(void)
{
int stat;
/* use func 8 to determine if the default drive is
removable */
stat = ioctl(0, 8, 0, 0);
if (!stat)
printf("Drive %c is removable./n", getdisk() + 'A');
else
printf("Drive %c is not removable./n",getdisk()+'A');
return 0;
}
函数名: isatty
功 能: 检查设备类型
用 法: int isatty(int handle);
程序例:#include <stdio.h>
#include <io.h>int main(void)
{
int handle; handle = fileno(stdprn);
if (isatty(handle)) printf("Handle %d is a device type/n", handle);
else
printf("Handle %d isn't a device type/n", handle);
return 0;
}
函数名: itoa
功 能: 把一整数转换为字符串
用 法: char *itoa(int value, char *string, int radix);
程序例:#include <stdlib.h>
#include <stdio.h>int main(void)
{
int number = 12345;
char string[25]; itoa(number, string, 10); printf("integer = %d string = %s/n", number, string);
return 0;
}

字母K开头函数
函数名: kbhit
功 能: 检查当前按下的键
用 法: int kbhit(void);
程序例:#include <conio.h>int main(void)
{
cprintf("Press any key to continue:");
while (!kbhit()) /* do nothing */ ;
cprintf("/r/nA key was pressed.../r/n");
return 0;
}
函数名: keep
功 能: 退出并继续驻留
用 法: void keep(int status, int size);
程序例:/***NOTE:
This is an interrupt service routine. You
can NOT compile this program with Test
Stack Overflow turned on and get an
executable file which will operate
correctly. Due to the nature of this
function the formula used to compute
the number of paragraphs may not
necessarily work in all cases. Use with
care! Terminate Stay Resident (TSR) programs are complex and no other support
for them is provided. Refer to the
MS-DOS technical documentation
for more information. */#include <dos.h>
/* The clock tick interrupt */
#define INTR 0x1C
/* Screen attribute (blue on grey) */
#define ATTR 0x7900/* reduce heaplength and stacklength
to make a smaller program in memory */extern unsigned _heaplen = 1024;
extern unsigned _stklen = 512;void interrupt ( *oldhandler)(void);void interrupt handler(void)
{
unsigned int (far *screen)[80];
static int count;/* For a color screen the video memory
is at B800:0000. For a monochrome
system use B000:000 */
screen = MK_FP(0xB800,0);/* increase the counter and keep it
within 0 to 9 */
count++;
count %= 10;/* put the number on the screen */
screen[0][79] = count + '0' + ATTR;/* call the old interrupt handler */
oldhandler();
}
int main(void)
{
/* get the address of the current clock
tick interrupt */
oldhandler = getvect(INTR);/* install the new interrupt handler */
setvect(INTR, handler);/* _psp is the starting address of the
program in memory. The top of the stack
is the end of the program. Using _SS and
_SP together we can get the end of the
stack. You may want to allow a bit of saftey space to insure that enough room
is being allocated ie:
(_SS + ((_SP + safety space)/16) - _psp)
*/
keep(0, (_SS + (_SP/16) - _psp));
return 0;
}

字母L开头函数
函数名: labs
功 能: 取长整型绝对值
用 法: long labs(long n);
程序例:#include <stdio.h>
#include <math.h>int main(void)
{
long result;
long x = -12345678L; result= labs(x); printf("number: %ld abs value: %ld/n",
x, result); return 0;
}
函数名: ldexp
功 能: 计算value*2的幂
用 法: double ldexp(double value, int exp);
程序例:
#include <stdio.h>
#include <math.h>int main(void)
{
double value;
double x = 2;
/* ldexp raises 2 by a power of 3
then multiplies the result by 2 */
value = ldexp(x,3); printf("The ldexp value is: %lf/n",
value); return 0;
}
函数名: ldiv
功 能: 两个长整型数相除, 返回商和余数
用 法: ldiv_t ldiv(long lnumer, long ldenom);
程序例:/* ldiv example */#include <stdlib.h>
#include <stdio.h>int main(void)
{
ldiv_t lx;
lx = ldiv(100000L, 30000L);
printf("100000 div 30000 = %ld remainder %ld/n",
lx.quot, lx.rem);
return 0;
}
函数名: lfind
功 能: 执行线性搜索
用 法: void *lfind( void *key, void *base, int *nelem,
int width, int (*fcmp)() );
程序例:#include <stdio.h>
#include <stdlib.h>int compare(int *x, int *y)
{
return( *x - *y );
}int main(void)
{
int array[5] = {35, 87, 46, 99, 12};
size_t nelem = 5;
int key;
int *result; key = 99;
result = lfind(&key, array, &nelem,
sizeof(int), (int(*)(const void *,const void *))compare);
if (result)
printf("Number %d found/n",key);
else
printf("Number %d not found/n",key); return 0;
}
函数名: line
功 能: 在指定两点间画一直线
用 法: void far line(int x0, int y0, int x1, int y1);
程序例:#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>int main(void)
{ /* request auto detection */
int gdriver = DETECT, gmode, errorcode;
int xmax, ymax; /* 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();
exit(1);
} setcolor(getmaxcolor());
xmax = getmaxx();
ymax = getmaxy(); /* draw a diagonal line */
line(0, 0, xmax, ymax);
/* clean up */
getch();
closegraph();
return 0;
}
函数名: linerel
功 能: 从当前位置点(CP)到与CP有一给定相对距离的点画一直线
用 法: void far linerel(int dx, int dy);
程序例:#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>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)
{
printf("Graphics error: %s/n",
grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1);
} /* move the C.P. to location (20, 30) */
moveto(20, 30); /* create and output a
message at (20, 30) */
sprintf(msg, " (%d, %d)", getx(), gety());
outtextxy(20, 30, msg); /* draw a line to a point a relative
distance away from the current
value of C.P. */
linerel(100, 100); /* create and output a message at C.P. */
sprintf(msg, " (%d, %d)", getx(), gety());
outtext(msg); /* clean up */
getch();
closegraph();
return 0;
}
函数名: localtime
功 能: 把日期和时间转变为结构
用 法: struct tm *localtime(long *clock);
程序例:#include <time.h>
#include <stdio.h>
#include <dos.h>int main(void)
{
time_t timer;
struct tm *tblock;
/* gets time of day */
timer = time(NULL); /* converts date/time to a structure */
tblock = localtime(&timer); printf("Local time is: %s", asctime(tblock)); return 0;
}
函数名: lock
功 能: 设置文件共享锁
用 法: int lock(int handle, long offset, long length);
程序例:#include <io.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <process.h>
#include <share.h>
#include <stdio.h>int main(void)
{ int handle, status;
long length; /* Must have DOS Share.exe loaded for */
/* file locking to function properly */ handle = sopen("c://autoexec.bat",
O_RDONLY,SH_DENYNO,S_IREAD); if (handle < 0)
{
printf("sopen failed/n");
exit(1);
} length = filelength(handle);
status = lock(handle,0L,length/2); if (status == 0)
printf("lock succeeded/n");
else
printf("lock failed/n"); status = unlock(handle,0L,length/2); if (status == 0)
printf("unlock succeeded/n");
else
printf("unlock failed/n"); close(handle);
return 0;
}
函数名: log
功 能: 对数函数ln(x)
用 法: double log(double x);
程序例:#include <math.h>
#include <stdio.h>int main(void)
{
double result;
double x = 8.6872; result = log(x); printf("The natural log of %lf is %lf/n", x, result); return 0;
}
函数名: log10
功 能: 对数函数log
用 法: double log10(double x);
程序例:#include <math.h>
#include <stdio.h>int main(void)
{
double result;
double x = 800.6872; result = log10(x); printf("The common log of %lf is %lf/n", x, result); return 0;
}
函数名: longjump
功 能: 执行非局部转移
用 法: void longjump(jmp_buf env, int val);
程序例:#include <stdio.h>
#include <setjmp.h>
#include <stdlib.h>void subroutine(jmp_buf);int main(void)
{ int value;
jmp_buf jumper; value = setjmp(jumper);
if (value != 0)
{
printf("Longjmp with value %d/n", value);
exit(value);
} printf("About to call subroutine ... /n");
subroutine(jumper); return 0;
}void subroutine(jmp_buf jumper)
{
longjmp(jumper,1);
}
函数名: lowvideo
功 能: 选择低亮度字符
用 法: void lowvideo(void);
程序例:#include <conio.h>int main(void)
{
clrscr(); highvideo();
cprintf("High Intesity Text/r/n");
lowvideo(); gotoxy(1,2);
cprintf("Low Intensity Text/r/n"); return 0;
}
函数名: lrotl, _lrotl
功 能: 将无符号长整型数向左循环移位
用 法: unsigned long lrotl(unsigned long lvalue, int count);
unsigned long _lrotl(unsigned long lvalue, int count);
程序例:/* lrotl example */
#include <stdlib.h>
#include <stdio.h>int main(void)
{
unsigned long result;
unsigned long value = 100; result = _lrotl(value,1);
printf("The value %lu rotated left one bit is: %lu/n",
value, result);
return 0;
}
函数名: lsearch
功 能: 线性搜索
用 法: void *lsearch( const void *key, void *base,
size_t *nelem, size_t width,
int (*fcmp)(const void *, const void *));
程序例:#include <stdio.h>
#include <stdlib.h>int compare(int *x, int *y)
{
return( *x - *y );
}int main(void)
{
int array[5] = {35, 87, 46, 99, 12};
size_t nelem = 5;
int key;
int *result; key = 99;
result = lfind(&key, array, &nelem,
sizeof(int), (int(*)(const void *,const void *))compare);
if (result)
printf("Number %d found/n",key);
else
printf("Number %d not found/n",key); return 0;
}
函数名: lseek
功 能: 移动文件读/写指针
用 法: long lseek(int handle, long offset, int fromwhere);
程序例:#include <sys/stat.h>
#include <string.h>
#include <stdio.h>
#include <fcntl.h>
#include <io.h>int main(void)
{
int handle;
char msg[] = "This is a test";
char ch; /* create a file */
handle = open("TEST.$$$", O_CREAT | O_RDWR,
S_IREAD | S_IWRITE); /* write some data to the file */
write(handle, msg, strlen(msg));
/* seek to the begining of the file */
lseek(handle, 0L, SEEK_SET); /* reads chars from the file until we hit EOF */
do
{
read(handle, &ch, 1);
printf("%c", ch);
} while (!eof(handle)); close(handle);
return 0;
}

字母M开头函数
函数名: malloc
功 能: 内存分配函数
用 法: void *malloc(unsigned size);
程序例:#include <stdio.h>
#include <string.h>
#include <alloc.h>
#include <process.h>int main(void)
{
char *str;
/* allocate memory for string */
/* This will generate an error when compiling */
/* with C++, use the new operator instead. */
if ((str = malloc(10)) == NULL)
{
printf("Not enough memory to allocate buffer/n");
exit(1); /* terminate program if out of memory */
} /* copy "Hello" into string */
strcpy(str, "Hello"); /* display string */
printf("String is %s/n", str); /* free memory */
free(str); return 0;
}
函数名: matherr
功 能: 用户可修改的数学错误处理程序
用 法: int matherr(struct exception *e);
程序例:/* This is a user-defined matherr function that prevents
any error messages from being printed. */#include<math.h>int matherr(struct exception *a)
{
return 1;
}
函数名: memccpy
功 能: 从源source中拷贝n个字节到目标destin中
用 法: void *memccpy( void *destin, void *source,
unsigned char ch, unsigned n );
程序例:#include <string.h>
#include <stdio.h>int main(void)
{
char *src = "This is the source string";
char dest[50];
char *ptr; ptr = memccpy(dest, src, 'c', strlen(src)); if (ptr)
{
*ptr = '/0';
printf("The character was found: %s/n", dest);
}
else
printf("The character wasn't found/n");
return 0;
}
函数名: memchr
功 能: 在数组的前n个字节中搜索字符
用 法: void *memchr(void *s, char ch, unsigned n);
程序例:
#include <string.h>
#include <stdio.h>
int main(void)
{
char str[17];
char *ptr; strcpy(str, "This is a string");
ptr = memchr(str, 'r', strlen(str));
if (ptr) printf("The character 'r' is at position: %d/n",
ptr - str);
else
printf("The character was not found/n");
return 0;
}
函数名: memcpy
功 能: 从源source中拷贝n个字节到目标destin中
用 法: void *memcpy(void *destin,void *source,unsigned n);
程序例:#include <stdio.h>
#include <string.h>
int main(void)
{
char src[] = "******************************";
char dest[] = "abcdefghijlkmnopqrstuvwxyz0123456709";
char *ptr;
printf("destination before memcpy: %s/n", dest);
ptr = memcpy(dest, src, strlen(src)); if (ptr)
printf("destination after memcpy: %s/n", dest);
else
printf("memcpy failed/n");
return 0;
}
函数名: memicmp
功 能: 比较两个串s1和s2的前n个字节, 忽略大小写
用 法: int memicmp(void *s1, void *s2, unsigned n);
程序例:#include <stdio.h>
#include <string.h>int main(void)
{
char *buf1 = "ABCDE123";
char *buf2 = "abcde456";
int stat;
stat = memicmp(buf1, buf2, 5); printf("The strings to position 5 are ");
if (stat)
printf("not ");
printf("the same/n");
return 0;
}
函数名: memmove
功 能: 移动一块字节
用 法: void *memmove(void *destin,void *source,unsigned n);
程序例:#include <string.h>
#include <stdio.h>int main(void)
{
char *dest = "abcdefghijklmnopqrstuvwxyz0123456789";
char *src = "******************************";
printf("destination prior to memmove: %s/n", dest);
memmove(dest, src, 26); printf("destination after memmove: %s/n", dest);
return 0;
}
函数名: memset
功 能: 设置s中的所有字节为ch, s数组的大小由n给定
用 法: void *memset(void *s, char ch, unsigned n);
程序例:#include <string.h>
#include <stdio.h>
#include <mem.h>int main(void)
{
char buffer[] = "Hello world/n"; printf("Buffer before memset: %s/n", buffer); memset(buffer, '*', strlen(buffer) - 1);
printf("Buffer after memset: %s/n", buffer);
return 0;
}
函数名: mkdir
功 能: 建立一个目录
用 法: int mkdir(char *pathname);
程序例:#include <stdio.h>
#include <conio.h>
#include <process.h>
#include <dir.h>int main(void)
{
int status;
clrscr();
status = mkdir("asdfjklm");
(!status) ? (printf("Directory created/n")) :
(printf("Unable to create directory/n")); getch();
system("dir");
getch(); status = rmdir("asdfjklm");
(!status) ? (printf("Directory deleted/n")) :
(perror("Unable to delete directory"));
return 0;
}
函数名: mktemp
功 能: 建立唯一的文件名
用 法: char *mktemp(char *template);
程序例:#include <dir.h>
#include <stdio.h>int main(void)
{
/* fname defines the template for the
temporary file. */ char *fname = "TXXXXXX", *ptr; ptr = mktemp(fname);
printf("%s/n",ptr);
return 0;
}
函数名: MK_FP
功 能: 设置一个远指针
用 法: void far *MK_FP(unsigned seg, unsigned off);
程序例:
#include <dos.h>
#include <graphics.h>int main(void)
{
int gd, gm, i;
unsigned int far *screen; detectgraph(&gd, &gm);
if (gd == HERCMONO) screen = MK_FP(0xB000, 0);
else
screen = MK_FP(0xB800, 0);
for (i=0; i<26; i++)
screen[i] = 0x0700 + ('a' + i);
return 0;
}
函数名: modf
功 能: 把数分为指数和尾数
用 法: double modf(double value, double *iptr);
程序例:#include <math.h>
#include <stdio.h>int main(void)
{
double fraction, integer;
double number = 100000.567; fraction = modf(number, &integer); printf("The whole and fractional parts of %lf are %lf/
and %lf/n",number, integer, fraction);
return 0;
}
函数名: movedata
功 能: 拷贝字节
用 法: void movedata(int segsrc, int offsrc, int segdest,
int offdest, unsigned numbytes);
程序例:#include <mem.h>#define MONO_BASE 0xB000/* saves the contents of the monochrome screen in buffer */
void save_mono_screen(char near *buffer)
{ movedata(MONO_BASE, 0, _DS, (unsigned)buffer, 80*25*2);
}int main(void)
{
char buf[80*25*2];
save_mono_screen(buf);
}
函数名: moverel
功 能: 将当前位置(CP)移动一相对距离
用 法: void far moverel(int dx, int dy);
程序例:#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>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 the C.P. to location (20, 30) */
moveto(20, 30); /* plot a pixel at the C.P. */
putpixel(getx(), gety(), getmaxcolor()); /* create and output a message at (20, 30) */
sprintf(msg, " (%d, %d)", getx(), gety());
outtextxy(20, 30, msg); /* move to a point a relative distance */
/* away from the current value of C.P. */
moverel(100, 100);
/* plot a pixel at the C.P. */
putpixel(getx(), gety(), getmaxcolor()); /* create and output a message at C.P. */
sprintf(msg, " (%d, %d)", getx(), gety());
outtext(msg); /* clean up */
getch();
closegraph();
return 0;
}
函数名: movetext
功 能: 将屏幕文本从一个矩形区域拷贝到另一个矩形区域
用 法: int movetext( int left, int top, int right,
int bottom, int newleft, int newtop );
程序例:
#include <conio.h>
#include <string.h>int main(void)
{
char *str = "This is a test string"; clrscr();
cputs(str); getch(); movetext(1, 1, strlen(str), 2, 10, 10);
getch(); return 0;
}
函数名: moveto
功 能: 将CP移到(x, y)
用 法: void far moveto(int x, int y);
程序例:#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>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 the C.P. to location (20, 30) */
moveto(20, 30); /* plot a pixel at the C.P. */
putpixel(getx(), gety(), getmaxcolor()); /* create and output a message at (20, 30) */
sprintf(msg, " (%d, %d)", getx(), gety());
outtextxy(20, 30, msg); /* move to (100, 100) */
moveto(100, 100); /* plot a pixel at the C.P. */
putpixel(getx(), gety(), getmaxcolor()); /* create and output a message at C.P. */
sprintf(msg, " (%d, %d)", getx(), gety());
outtext(msg); /* clean up */
getch();
closegraph();
return 0;
}
函数名: movemem
功 能: 移动一块字节
用 法: void movemem( void *source, void *destin,
unsigned len );
程序例:#include <mem.h>
#include <alloc.h>
#include <stdio.h>
#include <string.h>int main(void)
{
char *source = "Borland International"; char *destination;
int length; length = strlen(source);
destination = malloc(length + 1);
movmem(source,destination,length);
printf("%s/n",destination); return 0;
}